webentwicklung-frage-antwort-db.com.de

Rufen Sie den Verbindungsstatus auf dem Socket.io-Client ab

Ich verwende Socket.io und ich möchte den Status der Verbindung zum Server von der Clientseite erfahren.

Etwas wie das:

socket.status // return true if connected, false otherwise

Ich benötige diese Informationen, um dem Benutzer ein visuelles Feedback zu geben, wenn die Verbindung getrennt wurde oder die Verbindung aus irgendeinem Grund getrennt wurde.

50
franzlorenzon

Sie können die socket.connected-Eigenschaft überprüfen:

var socket = io.connect();
console.log('check 1', socket.connected);
socket.on('connect', function() {
  console.log('check 2', socket.connected);
});

Sie wird dynamisch aktualisiert. Wenn die Verbindung unterbrochen wird, wird sie auf false gesetzt, bis der Client die Verbindung wieder aufnimmt. So einfach zu überprüfen mit setInterval oder so ähnlich.

Eine andere Lösung wäre, disconnect Ereignisse abzufangen und den Status selbst zu verfolgen.

94
robertklep

Sie können überprüfen, ob die Verbindung unterbrochen wurde oder nicht, indem Sie diese Funktion verwenden: -

var socket = io( /**connection**/ );
socket.on('disconnect', function(){
//Your Code Here
});

Ich hoffe es wird dir helfen.

6
Ansari Abdullah

Verfolgen Sie den Status der Verbindung selbst. Mit einem booleschen. Setzen Sie ihn bei der Deklaration auf false. Verwenden Sie die verschiedenen Ereignisse (Verbinden, Trennen, Wiederverbinden usw.), um den aktuellen booleschen Wert neu zuzuweisen. Hinweis: Die Verwendung nicht dokumentierter API-Funktionen (z. B. socket.connected) ist keine gute Idee. Das Feature kann in einer nachfolgenden Version entfernt werden, ohne dass das Entfernen erwähnt wird.

2
Ilan

Heutzutage funktioniert socket.on ('connect', ...) nicht für mich . Ich verwende den folgenden Code, um beim ersten Verbindungsaufbau zu prüfen.

if (socket.connected)
  concole.log('socket.io is connected.')

und verwenden Sie diesen Code, wenn Sie die Verbindung wieder herstellen.

socket.on('reconnect', ()=>{
  //Your Code Here
});
1
Na Nonthasen

Die Antwort von @ robertklep zur Überprüfung von socket.connected ist korrekt, mit Ausnahme des Reconnect - Ereignisses https://socket.io/docs/client-api/#event-reconnect .__ erfolgreiche Wiederverbindung. " Wenn Sie jedoch socket.connected überprüfen, ist dies falsch.

Ich bin mir nicht sicher, ob es sich um einen Fehler oder einen Vorsatz handelt. 

0
Qiulang