Ich versuche, einen SignalR-Hub zu debuggen und bemerkte, dass der Konstruktor mehrmals aufgerufen wird, sogar mit einem einzigen Client. Ist das das erwartete Verhalten? Ich habe erwartet, dass der Konstruktor nur einmal zur Klasseninitialisierung aufgerufen wird, aber ich treffe meinen Haltepunkt mehrmals.Wann wird der SignalR-Hub-Konstruktor aufgerufen?
Antwort
In SignalR Hub-Instanz wird für jede Anfrage erstellt. Es spielt also keine Rolle, ob es nur einen oder mehrere Clients gibt. Tatsächlich ist Hub eine Abstraktion über PersistentConnection. Wenn Sie eine genauere Kontrolle über die Vorgänge hinter der Szene wünschen, können Sie PersistentConnection verwenden. Hier überprüfen: https://github.com/SignalR/SignalR/wiki/PersistentConnection
Noch mehr als das. Einmal pro Aufruf, was mehr als pro Anfrage sein kann (im Fall von Websockets) – davidfowl
Wie Incognito richtig darauf hingewiesen, erstellt SignalR eine neue Instanz des Hubs für jede Anfrage. Sie sollten statische Elemente verwenden, um die gewünschten Informationen für alle Anforderungen im Hub zu speichern. Wenn Sie jedes Mal, wenn ein neuer Client eine Verbindung zum Hub herstellt, einige Operationen ausführen möchten, sollten Sie diesen Code in OnConnected einfügen.
nicht sicher, aber ich denke, es ist ein neues auf jede Anfrage – MEYWD