Socket.io: vérifier l'état d'une connexion avec le support id
J'ai un socket id de connexion. Puis-je obtenir le statut de la connexion, à l'intérieur de la fonction de gestionnaire d'un autre?
Quelque chose comme ceci:
io.sockets.on('connection', function(socket) {
/* having the socket id of *another* connection, I can
* check its status here.
*/
io.sockets[other_socket_id].status
}
Est-il un moyen de le faire?
OriginalL'auteur franzlorenzon | 2013-05-23
Vous devez vous connecter pour publier un commentaire.
Pour les versions supérieures à 1,0, vérifiez Karan Kapoor réponse.
Pour les anciennes versions, vous pouvez accéder à un socket connecté avec
io.sockets.sockets[a_socket_id]
, donc si vous avez défini une variable d'état sur elle,io.sockets.sockets[a_socket_id].status
fonctionne.D'abord, vous devez vérifier si le socket existe vraiment, et il peut également être utilisé pour vérifier connecté/déconnecté statuts.
+1 pour la belle réponse, je vous remercie!
quel est l'autre moyen de vérifier socketid est toujours connecté?
J'ai émigré à sockjs mais c'est la façon dont je l'ai fait. J'ai pris les clients avec
io.sockets.clients()
. Puis-je parcourir le tableau, la recherche de la bonne prise (comparaison de l'ids,.id
bien sur une prise d'objet). Quand je l'ai trouvé, j'ai vérifié ledisconnected
de la propriété. Pour plus de précision, j'ai écrit un simple keepalive système permettant de vérifier si les clients étaient vivants.Cela ne fonctionne pas plus..
OriginalL'auteur Riwels
À compter d'aujourd'hui, Fév, 2015, aucune des méthodes présentées ici, le travail sur la version actuelle de la Prise.io (1.1.0). Donc, sur cette version, c'est la façon dont il fonctionne pour moi :
la
io.sockets.server.eio.clients
est un tableau contenant une liste de tous les vivants prise de son identification. Il faut donc utiliser le code dans l'instruction if pour vérifier si un socket ID est dans cette liste.OriginalL'auteur Karan Kapoor
Socket.io >= 1.0, comme Riwels réponse, vous devez d'abord vérifier si le socket existe
OriginalL'auteur pkarc
connected
état, pas d'autres...OriginalL'auteur Insider
Dans les versions plus récentes, vous pouvez vérifier
socket.connected
propriété.Vous pouvez également définir le délai d'attente
Celui-ci vérifie si le socket connecté en 5 secondes.
OriginalL'auteur notgiorgi