Gestion de la perte de connexion avec les Websockets

J'ai récemment mis en place un local serveur WebSocket qui fonctionne très bien, cependant, je vais avoir quelques problèmes de compréhension de comment je dois gérer une perte soudaine de la connexion que ni le client ou le serveur intentionnellement lancé, j'ai.e: le Serveur perd de la puissance, les câbles ethernet sorti etc... j'ai besoin du client pour savoir si la connexion a été perdue à l'intérieur de ~10seconds.

Côté Client, la connexion est tout simplement:

var websocket_conn = new WebSocket('ws://192.168.0.5:3000');

websocket_conn.onopen = function(e) {
    console.log('Connected!');
};

websocket_conn.onclose = function(e) {
    console.log('Disconnected!');
};

Je peux déclencher manuellement la connexion déconnexion qui fonctionne très bien,

websocket_conn.close();

Mais si j'ai simplement tiré le câble ethernet à l'arrière de l'ordinateur, ou la désactivation de la connexion, onclose n'est pas appelée. J'ai lu dans un autre post qu'il finirait par être appelé lorsque TCP détecte une perte de connectivitémais il n'est pas en temps opportun, que j'ai besoin en tant que par défaut pour Firefox, je crois, est de 10 minutes, et je n'ai pas vraiment envie d'aller autour de centaines d'ordinateurs about:config modification de cette valeur. La seule suggestion que j'ai lu est d'utiliser un "ping/pong" keep-alive bureaux de style de méthode qui semble contre-intuitif à l'idée de les websockets.

Est-il un moyen plus facile de détecter ce type de débrancher le comportement? Ce sont les vieux messages, je suis en train de lire encore jusqu'à ce jour d'un point technique, et la meilleure méthode est encore de ping/pong " style?

source d'informationauteur MLeFevre