SignalR overwriting OnConnected(), OnDisconnected(

2019-04-06 10:44发布

I'm trying to overwrite OnConnected(), OnDisconnected() methods but I get: OnConnected()': no suitable method found to override

Is implementing IDisconnect, IConnect interfaces and doing my processing within Connect() and Disconnect() the same as OnConnected(), OnDisconnected()?

what gives?

   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();
        }
    }

2条回答
forever°为你锁心
2楼-- · 2019-04-06 11:32

You're probably using and old version of SignalR. Read this http://weblogs.asp.net/davidfowler/archive/2012/11/11/microsoft-asp-net-signalr.aspx.

查看更多
Ridiculous、
3楼-- · 2019-04-06 11:34

This code worked for me until this morning when I upgraded SignalR from 2.1.0 to 2.1.1, and now I get "no suitable method found to override" for OnDisconnected(). I believe it needs to be written like this instead to account for a new parameter:

public override Task OnDisconnected(bool stopCalled = true) 
{
   UserHandler.ConnectedIds.Remove(Context.ConnectionId);
   return base.OnDisconnected(stopCalled); 
}
查看更多
登录 后发表回答