J'utilise Socket.io et j'aimerais connaître l'état de la connexion au serveur du côté client.
Quelque chose comme ça:
socket.status // return true if connected, false otherwise
J'ai besoin de cette information pour donner un retour visuel à l'utilisateur si la connexion a été interrompue ou si elle s'est déconnectée pour une raison quelconque.
Vous pouvez vérifier la propriété socket.connected
:
var socket = io.connect();
console.log('check 1', socket.connected);
socket.on('connect', function() {
console.log('check 2', socket.connected);
});
Il est mis à jour dynamiquement, si la connexion est perdue, il sera défini sur false
jusqu'à ce que le client reprenne la connexion. Tellement facile à vérifier avec setInterval
ou quelque chose comme ça.
Une autre solution serait d’attraper les événements disconnect
et de suivre l’état vous-même.
Vous pouvez vérifier si la connexion a été perdue ou non en utilisant cette fonction: -
var socket = io( /**connection**/ );
socket.on('disconnect', function(){
//Your Code Here
});
J'espère que cela vous aidera.
Suivez vous-même l'état de la connexion. Avec un booléen. Réglez-le sur false
lors de la déclaration. Utilisez les différents événements (connexion, déconnexion, reconnexion, etc.) pour réaffecter la valeur booléenne actuelle. Remarque: l'utilisation de fonctionnalités d'API non documentées (par exemple, socket.connected
) n'est pas une bonne idée. la fonctionnalité pourrait être supprimée dans une version ultérieure sans que la suppression soit mentionnée.
Ces jours-ci, socket.on ('connect', ...) ne fonctionne pas pour moi . J'utilise le code ci-dessous pour vérifier lors de la 1ère connexion.
if (socket.connected)
concole.log('socket.io is connected.')
et utiliser ce code lors de la reconnexion.
socket.on('reconnect', ()=>{
//Your Code Here
});
La réponse de @ robertklep à vérifier socket.connected est correcte sauf pour l'événement de reconnexion, https://socket.io/docs/client-api/#event-reconnect .__ reconnexion réussie. " mais lorsque vous cochez socket.connected
, il est faux.
Pas sûr que ce soit un bug ou intentionnel.