Ich lerne SignalIR, und habe ein Problem gefunden. Wenn Sie einen Blick auf diese Seite haben, gibt es ein Beispiel:SignalIR Hubs in asp.net Haltevariablen
https://www.simple-talk.com/dotnet/asp.net/tracking-online-users-with-signalr/
im Beispiel können Sie der Autor siehe die folgenden Methoden verwendet Online-Nutzer zu verfolgen:
private static int _userCount = 0;
// Overridable hub methods
public override Task OnConnected()
{
_userCount ++;
}
public override Task OnReconnected()
{
_userCount ++;
}
public override Task OnDisconnected(bool stopCalled)
{
_userCount --;
}
Mein Problem mit Dieser Code ist jedes Mal, wenn eine Methode in dieser Klasse aufgerufen wird. Alle Variablen werden zurückgesetzt. Bei jedem Aufruf von OnConnected() beginnt _userCount mit 0 und wird beim nächsten Verbindungsaufbau mit _userCount wieder auf 0 gesetzt wird wieder auf 1 erhöht.
Ich habe eine andere Methode zu überprüfen, wie viele Benutzer verbunden sind:
public int countUsers()
{
return _userCount;
}
Dies liefert immer 0
Muss ich die Variablen speichern woanders server?
Verwenden Sie einen Singleton. – mxmissile