SignalR - Überprüfen, ob ein Benutzer noch Online ist
Habe ich einen hub mit der Methode, die aufgerufen wird, auf client-Seite. Diese Methode startet einen timer mit einem Delegierten, der läuft alle 10 Sekunden. Da würde es keinen Sinn machen, weiter zu laufen, diese zu delegieren, wenn niemand verbunden ist, um die hub -, ich möchte, um zu überprüfen, ob alle Benutzer immer noch verbunden sind, die von innen die Stellvertretung, bevor ich es erneut zeitgesteuert verarbeiten. Gibt es eine Möglichkeit, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich die am häufigsten verwendete Lösung besteht darin, eine statische variable, die der Benutzer derzeit verbunden ist, und überschreiben
OnConnect
undOnDisconnect
oder die UmsetzungIDisconnect
je nach version, die Sie verwenden.Würden Sie etwas umsetzen wie diese:
Wenn Sie speichern Sie Ihre connectionId in Ihrer Datenbank, können Sie das überprüfen:
using Microsoft.AspNet.SignalR.Transports
Vom http://forums.asp.net/t/1829432.aspx/1?How+do+I+get+Liste+mit+verbundenen+Kunden+in+signalr+
So sollten Sie in der Lage sein, um Kontext.Kunden.Graf.
Dass die post verweist außerdem auf das wiki, die hat viele gute Infos. Sie könnten versuchen, mit der OnConnected/OnDisconnected Beispiele zu verfolgen, dem Benutzer, und wenn Sie auf null Benutzer beenden Ihren Anruf.