Wann ist eine Verbindung in signalR auftreten?
Habe ich angefangen, mit SignalR und versuchte herauszufinden, wenn ein Hub Verbinden Auftritt. Ich fand keine befriedigende Erklärung auf der web. Kann mir jemand erklären, Wann/warum eine erneute Auftritt?
- Was ist das Verhalten, wenn die Gastgeber plötzlich nach unten ? Alle angeschlossenen clients den host nicht alle Nachrichten empfangen. Wie lösen Sie oder fangen Sie das ?
- Hi @LeMoustique ich glaube, dass lohnt sich eine separate Frage in SO.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem hub verbinden tritt auf, wenn ein client offline geht, dann gewinnt connectivity kurz nach. SignalR-Konfiguration Werte bestimmen weitgehend die Zeitstempel der in den folgenden Beispielen also nicht nehmen das mal wörtlich.
Hier sind einige Beispiele und deren Ergebnisse (Zeitformat m:ss), in denen der Wiederverbindung Verhalten:
, Wenn ich Erwähne im folgenden beziehe ich mich auf das server-side-Hub-Methode
1)
0:00 - Client eine Verbindung zum server, OnConnected ausgelöst
0:10 - Client verliert die Verbindung aufgrund von ISP-Themen (und merkt es verliert die Verbindung)
0:15 - Client Gewinnt connectivity
0:16 - OnReconnected Ereignis wird ausgelöst,
2)
0:00 - Client eine Verbindung zum server, OnConnected ausgelöst
0:10 - Client verliert die Verbindung durch ziehen ethernet-Kabel (nicht begreifen, dass es getrennt ist)
0:15 - Client Gewinnt connectivity
Es können zwei Dinge passieren hier
A: 0:16 - passiert Nichts und der client weiterhin auf Ihrer bisherigen Verbindung
B: 0:~45 - Client Erkennt seine getrennt *
B: 0:46 - Client übergänge in die Wiederverbindung Zustand
B: 0:47 - Client erfolgreich eine Verbindung wiederherstellt und die OnReconnected-Ereignis ausgelöst wird.
3)
0:00 - Client eine Verbindung zum server, OnConnected ausgelöst
0:10 - Client verliert die Verbindung durch ziehen ethernet-Kabel (nicht begreifen, dass es getrennt ist)
0:~45 - Client Erkennt seine getrennt *
0:46 - Client übergänge in die Wiederverbindung Zustand
1:15 - Server bestimmt, der client hat den Weg zu lange und dann vergisst es, Schlange stehen, ein "disconnect" - Befehl, um den client zu empfangen, wenn es erneut etwas später. ***
1:15 - OnDisconnected ausgelöst
1:16 - Client gewinnt connectivity
1:17 - Client hat eine "weiche" Verbindung (nicht trigger OnReconnected)
1:18 - Client ruft die "disconnect" - Befehl
1:19 - Client ruft "stop" und macht eine weiche trennen (nicht trigger OnDisconnected)
4)
0:00 - Client eine Verbindung zum server, OnConnected ausgelöst
0:10 - Client verliert die Verbindung durch ziehen ethernet-Kabel (nicht begreifen, dass es getrennt ist)
0:~45 - Client Erkennt seine getrennt *
0:46 - Client übergänge in die Wiederverbindung Zustand
1:15 - Server bestimmt, der client hat den Weg zu lange und dann vergisst es, Schlange stehen, ein "disconnect" - Befehl, um den client zu empfangen, wenn es erneut etwas später. ***
1:15 - OnDisconnected ausgelöst
1:30 - Client nicht versucht zu verbinden (versuchen zu lange) **
1:30 - Client übergänge in den unterbrochenen Zustand
* Aufgrund der client-Seite keep-alive-check: Verwendet, um zu bestimmen, wenn ein client offline ist, wegen des Mangels von keep alives. Nicht verwertet, für die long-polling transport
** Aufgrund der client-Seite trennen-timeout: Verwendet, um zu bestimmen, wenn ein client hat wieder Verbindung zu lange von einer Zeit und die Chancen sind die server vergessen hat, über die der client während der Zeit
*** Aufgrund von server-disconnect timeout: Verwendet, um zu bestimmen, wenn ein client vergessen werden sollte über. Es ist eine Zeitspanne, die beginnt zu schuetzen, sobald eine Verbindung tagged wie tot auf dem server. Letztlich die server-Warteschlangen einen disconnect-Befehl für die client-Thema, das sagt der Kunde (wenn es wieder her), die es braucht, um starten Sie eine neue Verbindung. Der Befehl wird vom server verschwinden, wenn das Thema bereinigt.
Hoffe, das hilft!