2012-11-23 8 views
7

を上書き)、OnDisconnected()メソッドが、私は得る:SignalRは私がOnConnectedを(上書きしようとしているOnConnected()、OnDisconnected()

を上書きするために見つかりませ適切な方法はIDisconnect、のIConnectを実装されていない: ')OnConnected( OnConnected()、OnDisconnected()と同じように、Connect()およびDisconnect()内で処理していますか?

何が得られますか?

public static class UserHandler 
    { 
     public static HashSet<string> ConnectedIds = new HashSet<string>(); 
    } 

    public class MyHub : Hub 
    { 
     public override Task OnConnected() 
     { 
      UserHandler.ConnectedIds.Add(Context.ConnectionId); 
      return base.OnConnected(); 
     } 

     public override Task OnDisconnected() 
     { 
      UserHandler.ConnectedIds.Remove(Context.ConnectionId); 
      return base.OnDisconnected(); 
     } 
    } 

答えて

12

このコードは、SignalRを2.1.0から2.1.1にアップグレードしたときに、今度はOnDisconnected()のために「適切なメソッドが見つからない」と表示されるまで、私のために働いていました。私はそれが新しいパラメータを考慮するために、代わりにこのように書かれる必要があると考えている:ちょうど1対SignalR 2を学習の時間の後に今見ている

public override Task OnDisconnected(bool stopCalled = true) 
{ 
    UserHandler.ConnectedIds.Remove(Context.ConnectionId); 
    return base.OnDisconnected(stopCalled); 
} 
+0

、あなたは本当に '= true'にデフォルトを追加はずの。タイムアウトが発生すると、それは偽になるので、最後に見た時間のような特定のものを調整するロジックを持つか、または他のパラメータを設定することができます。 – ppumkin

関連する問題