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 に答える