SignalR overwriting OnConnected(), OnDisconnected()

ShaneKm picture ShaneKm · Nov 23, 2012 · Viewed 16.5k times · Source

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

Answer

brnwdrng picture brnwdrng · Jul 29, 2014

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