node.js socket.io

node.js - Obtener el estado de conexión en el cliente Socket.io



(4)

Estoy usando Socket.io, y me gustaría saber el estado de conexión al servidor desde el lado del cliente.

Algo como esto:

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

Necesito esta información para proporcionar una retroalimentación visual al usuario si la conexión se interrumpió o se desconectó por algún motivo.


La respuesta de @ robertklep para verificar socket.connected es correcta, excepto para el evento de reconexión, https://socket.io/docs/client-api/#event-reconnect Como el documento dice que está "Encendido en una reconexión correcta" pero cuando se comprueba socket.connected entonces es falso.

No estoy seguro de que sea un error o intencional.


Puede comprobar la propiedad socket.connected :

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

Se actualiza dinámicamente, si la conexión se pierde, se establecerá en false hasta que el cliente vuelva a tomar la conexión. Tan fácil de verificar con setInterval o algo así.

Otra solución sería detectar eventos de disconnect y rastrear el estado usted mismo.


Puede verificar si la conexión se perdió o no usando esta función:

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

Espero que te ayude.


Seguimiento del estado de la conexión a ti mismo. Con un booleano. Establézcalo en false en la declaración. Utilice los diversos eventos (conectar, desconectar, reconectar, etc.) para reasignar el valor booleano actual. Nota: el uso de características de la API no documentadas (por ejemplo, socket.connected ) no es una buena idea; la característica podría eliminarse en una versión posterior sin que se mencione la eliminación.