2017-09-29 17 views
1

ASP.NET Core SignalRアプリケーションを動作させるのにトラブルがあります。AspNetCore.SignalR:初期状態でない接続を開始できません

私はこのサーバー側のコードがあります。

SignalRハブサービスとして設定されている
public class PopcornHub : Hub 
{ 
    private int Users; 

    public async Task BroadcastNumberOfUsers(int nbUser) 
    { 
     await Clients.All.InvokeAsync("OnUserConnected", nbUser); 
    } 

    public override async Task OnConnectedAsync() 
    { 
     Users++; 
     await BroadcastNumberOfUsers(Users); 
     await base.OnConnectedAsync(); 
    } 

    public override async Task OnDisconnectedAsync(Exception exception) 
    { 
     Users--; 
     await BroadcastNumberOfUsers(Users); 
     await base.OnDisconnectedAsync(exception); 
    } 
} 

:私のクライアント側(WPFアプリ)で

public void ConfigureServices(IServiceCollection services) 
{ 
    ... 
    services.AddSignalR(); 
    ... 
} 

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
    ... 

    app.UseSignalR(routes => 
    { 
     routes.MapHub<PopcornHub>("popcorn"); 
    }); 

    ... 
} 

、私はサービスを持っているが

public class PopcornHubService : IPopcornHubService 
{ 
    private readonly HubConnection _connection; 

    public PopcornHubService() 
    { 
     _connection = new HubConnectionBuilder() 
      .WithUrl($"{Utils.Constants.PopcornApi.Replace("/api", "/popcorn")}") 
      .Build(); 
     _connection.On<int>("OnUserConnected", (message) => 
     { 

     }); 
    } 

    public async Task Start() 
    { 
     await _connection.StartAsync(); 
    } 
} 

私の問題は、私がStart()メソッドを呼び出すと、「Iにはない接続を開始できません「硝子状態」と呼ばれる。 問題は、ローカルまたはAzureで発生します。

SignalRエンドポイントは正常ですが、接続は確立できません。私は何が欠けていますか?

答えて

2

既に開始されている接続を開始しようとしているようです。アルファ2の時点では、接続は再開できません。つまり、停止した場合は再起動できません。新しい接続を作成する必要があります。ポストアルファバージョンで

EDIT

接続が再開されます。

関連する問題