2012-11-23 10 views
7

Ich versuche OnConnected(), OnDisconnected() Methoden zu überschreiben, aber ich bekomme: OnConnected() ': keine geeignete Methode außer Kraft zu setzen gefundenSignalR Überschreiben OnConnected(), OnDisconnected()

implementiert IDisconnect, IConnect Schnittstellen und meine Verarbeitung innerhalb von Connect() und Disconnect() genauso wie OnConnected(), OnDisconnected()?

was gibt's?

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

Antwort

12

Dieser Code funktionierte für mich bis heute Morgen, als ich SignalR von 2.1.0 auf 2.1.1 verbesserte, und jetzt bekomme ich "keine geeignete Methode zum Überschreiben gefunden" für OnDisconnected(). Ich glaube, es stattdessen so geschrieben werden muss für einen neuen Parameter zu berücksichtigen:

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

Einfach mal jetzt nach Stunden SignalR 2 vs 1 Lernen, sollten Sie nicht wirklich den '= true' Standard hinzuzufügen. Denn das wird falsch sein, wenn das Zeitlimit ausgelöst wird, und Sie können dann bestimmte Dinge anpassen, wie die zuletzt gesehene Zeit, oder andere Parameter einstellen. – ppumkin

Verwandte Themen