Comment vérifier que socket est vivant (connecté) dans socket.io avec plusieurs nœuds et socket.io-redis

J’utilise socket.io avec plusieurs nœuds, socket.io-redis et nginx. Je suis ce guide: http://socket.io/docs/using-multiple-nodes/

J’essaie de faire: à une fonction (site du serveur), je veux interroger par socketid que cette socket est connectée ou déconnectée

J’ai essayé io.of('namespace').connected[socketid] , cela ne fonctionne que pour le processus en cours (cela signifie qu’il ne peut vérifier que le processus en cours).

Est-ce que quelqu’un peut m’aider? Merci d’avance.

Comment puis-je vérifier si le socket est vivant (connecté) avec socketid J’ai essayé namespace.connected [socketid], cela ne fonctionne que pour le processus actuel.

Comme vous l’avez dit, un processus séparé signifie que les sockets ne sont enregistrés que sur le processus auquel ils ont été connectés en premier. Vous devez utiliser socket.io-redis pour connecter tous vos nœuds , et vous pouvez diffuser un événement chaque fois qu’un client se connecte / se déconnecte, de sorte que chaque nœud ait une liste en temps réel mise à jour de tous les clients.

Découvrez ici

Comme mentionné ci-dessus, vous devez utiliser socket.io-redis pour le faire fonctionner sur plusieurs nœuds.

 var io = require('socket.io')(3000); var redis = require('socket.io-redis'); io.adapter(redis({ host: 'localhost', port: 6379 }));