2012-11-23 109 views
7

我試圖覆蓋OnConnected(),OnDisconnected()方法,但我得到:OnConnected()「:發現覆蓋SignalR覆蓋OnConnected(),OnDisconnected()

是實現IDisconnect,IConnect的沒有合適的方法接口和在Connect()和Disconnect()中進行處理與OnConnected(),OnDisconnected()相同?

是什麼給出的?

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()沒有找到合適的方法覆蓋」。我相信它需要被寫成這樣考慮一個新的參數:

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

剛學SignalR 2比1小時後,現在看,你不應該真正增加了'= TRUE;默認。因爲這將是錯誤的,如果超時觸發,然後你可以有邏輯來調整某些東西,比如上次看到的時間,或者設置其他參數。 – ppumkin

相關問題