10

我正在尝试覆盖OnConnected(),OnDisconnected()方法,但我得到:

OnConnected()': no suitable method found to override

实现IDisconnectIConnect接口和在内部进行处理是否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();
    }
}
4

2 回答 2

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); 
}
于 2014-07-29T16:22:44.090 回答
6

您可能正在使用旧版本的 SignalR。阅读此http://weblogs.asp.net/davidfowler/archive/2012/11/11/microsoft-asp-net-signalr.aspx

于 2012-11-23T10:49:02.860 回答