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.
- 1. Wann wird onSizeChanged() aufgerufen?
- 2. Wann wird DbConnection.StateChange aufgerufen?
- 3. Wann wird InitWithCoder aufgerufen?
- 4. Wann wird document.ready() aufgerufen?
- 5. Wann wird 'drawRect' aufgerufen?
- 6. Wann wird onRestoreInstanceState aufgerufen?
- 7. Wann wird Control.DestroyHandle aufgerufen?
- 8. Wann wird ServiceConnection.onServiceDisconnected() aufgerufen?
- 9. Wann wird der Python __call__ aufgerufen?
- 10. Wann wird Angular2 ngAfterViewInit aufgerufen?
- 11. View.onDraw() --- wann wird es aufgerufen?
- 12. Wann wird UIViewController viewDidUnload aufgerufen?
- 13. Wann wird getPlaceholderTemplateForComplication() -Methode aufgerufen?
- 14. Wann wird Move Constructor aufgerufen?
- 15. Wann wurde der Zuweisungsoperator aufgerufen?
- 16. Objective-C Klassenvariablen: Wann wird Dealloc aufgerufen?
- 17. Wann wird ein Kopierkonstruktor in cpp aufgerufen?
- 18. Wann wird eine Unterroutine in @INC aufgerufen?
- 19. Wann wird ExecutionContext # reportFailure (Throwable) aufgerufen?
- 20. Wann wird die layoutSubviews-Methode aufgerufen?
- 21. ASP MVC: Wann wird IController Dispose() aufgerufen?
- 22. Wann wird Session_End() in ASP.NET MVC aufgerufen?
- 23. Wann wird TInterfacedObject.Destroy aufgerufen (eine ScopedLock-Klasse)
- 24. Wann wird die Methode - [UIView drawRect:] aufgerufen?
- 25. Wann wird ein Körper onLoad aufgerufen?
- 26. Wann wird ein Managed Bean-Konstruktor aufgerufen?
- 27. Wann wird OnValidate in Linq aufgerufen?
- 28. Wann wird die Validierungsmethode in Rails aufgerufen?
- 29. iOS: Wann wird der Hintergrund-Task-Code-Block aufgerufen?
- 30. Wann wird die Finalisierungsmethode in der Einheit aufgerufen?
nicht sicher, aber ich denke, es ist ein neues auf jede Anfrage – MEYWD