node.js les sockets.io de la déconnexion de toutes les ~25 secondes (battement de cœur)

Je suis en train de configurer un node.js serveur, à l'aide d'une douille.io. Le problème que je vois c'est que mon serveur est de déconnecter+de reconnecter le client toutes les 25 secondes.

Voici mon code serveur:

var io = require('socket.io').listen(5876);
io.sockets.on('connection', function (socket)
{
    console.log("New connection established");

    socket.on('disconnect', function()
    {
        console.log("A client has disconnected.");
    });
}

Mon client se connecte à l'aide de la socket.io.js de la distribution. Si je comprends bien (apparemment à tort), j'ai besoin de mon client d'envoyer un "battement de cœur" (un message de "::2") toutes les 15 secondes pour empêcher le serveur de penser le lien est mort et le débrancher. En gros:

<script src="socket.io.js"></script>
<script>
    var socket = io.connect('http://localhost:5876');

    socket.on('connect', function(data)
    {
        console.log("Connected to server.");
        setInterval(function() { socket.emit("::2"); console.log("sent heartbeat"); }, 15000); //schedule a heartbeat for every 15 seconds
    });
</script>

Mais le client est toujours déconnecté+rebranché toutes les 25 secondes (à l'exclusion de la première 25e de seconde-tique).

L'node.js serveur de journal de la console ressemble à ceci (peut avoir découpé quelques antérieure identique connecter/déconnecter phases, comme il était en écho à toutes les 25 secondes):

New connection established
   debug - emitting heartbeat for client 652791160849839915
   debug - websocket writing 2::
   debug - set heartbeat timeout for client 652791160849839915
   debug - got heartbeat packet
   debug - cleared heartbeat timeout for client 652791160849839915
   debug - set heartbeat interval for client 652791160849839915
   info  - transport end
   debug - set close timeout for client 652791160849839915
   debug - cleared close timeout for client 652791160849839915
   debug - cleared heartbeat interval for client 652791160849839915
A client has disconnected.
   debug - discarding transport
   debug - client authorized
   info  - handshake authorized 5961067041159055274
   debug - setting request GET /socket.io/1/websocket/5961067041159055274
   debug - set heartbeat interval for client 5961067041159055274
   debug - client authorized for
   debug - websocket writing 1::
New connection established

Comment puis-je arrêter mon serveur à partir de la déconnexion de+de reconnecter le client toutes les 25 secondes?

autant que je sache, vous n'avez pas besoin d'envoyer manuellement des paquets de pulsation comme cela est géré par le socket.io. Essayez de vérifier la connexion et la déconnexion des événements après la prise de votre manuel de battement de coeur appels.
avez-vous jamais résoudre ce problème? je suis d'avoir exactement le problème. J'ai rétrogradé à 0.8.7 et toujours le même problème. debug - tiré de pulsation délai d'attente pour le client 3744936361854682925 info - transport fin de débogage de près délai d'attente pour le client 3744936361854682925 debug - compensé près délai d'attente pour le client 3744936361854682925
Il y a une solution de contournement qui pourrait fonctionner: github.com/socketio/socket.io/issues/777 a part ça, j'ai dernièrement été simplement en utilisant les versions les plus récentes de la prise.io et n'ai pas rencontré de problèmes.
malheureusement, mon projet ne peut pas utiliser quoi que ce soit plus récente que 0.9.x 1,0 change beaucoup de choses qui rompre totalement notre projet. Je vais regarder la solution de contournement
Dang, j'espère que la solution fonctionne alors. Si pas, la prochaine chose que je serais probablement essayer est d'abaisser encore plus loin que 0.8.7 et espérer qu'une version plus ancienne qui n'ont pas de bug. A part ça, j'ai peur, je n'ai aucune idée.

OriginalL'auteur Josh1billion | 2012-03-05