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.
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.
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.
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.
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
});
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.