nodejs websocket détecter déconnecté socket
J'ai un nodejs serveur websocket et j'ai le problème suivant.
Lorsque mes clients de se connecter au serveur et de mettre fin gracieusement le onclose
méthode est appelée sur les sockets et j'ai effectuer des opérations de nettoyage sur le socket fermée.
Lorsque le client se déconnecte en raison de réseau, la onclose
méthode n'est pas appelée. Est-il un délai d'attente pour être réglé de façon à onclose
est appelée automatiquement après un délai d'attente?
Je suis en utilisant ws package pour le serveur websocket en nodejs
Vous devez vous connecter pour publier un commentaire.
par défaut ws mise en œuvre n'est pas un rappel pour le réseau se déconnecte du côté client
Vous pouvez trouver un keepAlive mise en œuvre ici
Bien, je vais essayer de répondre à votre question avec deux exemples. Essayez d'analyser à la fois d'eux et d'apprendre comment ils fonctionnent. Ils sont à la fois testé et de travail.
Serveur:
Client:
Serveur:
Client:
Pour détecter une déconnexion, vous avez besoin d'avoir un peu de trafic. Si votre application produit de la constante de la circulation, alors vous pourriez faire quelque chose comme réinitialiser un compteur à chaque fois que quelque chose est reçu, et d'envisager l'échec de la connexion lorsque le compteur s'épuise.
Sinon, vous devriez être en mesure d'utiliser les pings que WebSocket offre. Ce ne sont pas exposés dans le navigateur, mais votre WebSocket bibliothèque pour Node.js il peut vous permettre d'activer et recevoir une notification si une commande ping échoue.