Question

La documentation socket.io mentionne que les battements de coeur peuvent être personnes handicapées comme ceci:

io.disable('heartbeats');

Malheureusement, tout cela semble arrêter les hearbeats d'être envoyé, les clients déconnecter encore quand ils ne transmettent pas hearbeats.

Ce qui suit ne fonctionne pas non plus:

io.set('heartbeats', false);

J'ai essayé quelques intervalles de réglage 0, sans succès:

io.set('heartbeat timeout', 0);
io.set('heartbeat interval', 0);

Toutes les suggestions sur ce qui pourrait bien les battements de coeur désactiver?

Était-ce utile?

La solution

Le code est

io.disable('heartbeats');

Testé avec succès sur socket.io v0.8.7

Sans désemparer

debug - emitting heartbeat for client 299833185260419425
debug - websocket writing 2::
debug - set heartbeat timeout for client 299833185260419425
debug - got heartbeat packet
debug - cleared heartbeat timeout for client 299833185260419425
debug - set heartbeat interval for client 299833185260419425

Avec la désactivation

debug - client autorisé

info  - handshake authorized 1205975980561506547
debug - setting request GET /socket.io/1/websocket/1205975980561506547
debug - client authorized for 
debug - websocket writing 1::
debug - websocket writing 5:::{"name":"news","args":[{"hello":"foo"}]}

Autres conseils

Il y a quelque chose de mal avec les battements de coeur. J'ai le dernier socket.io et le noeud 0.6.x

   info  - socket.io started
   debug - client authorized
   info  - handshake authorized 734447051478827620
   debug - setting request GET /socket.io/1/websocket/734447051478827620
   debug - client authorized for
   debug - websocket writing 1::
   debug - websocket writing 5:::{"name":"hello"}
   info  - transport end (socket end)
   debug - set close timeout for client 734447051478827620
   debug - cleared close timeout for client 734447051478827620
   debug - discarding transport

// server code
var io = require('socket.io').listen(8080);
io.disable('heartbeats');

io.sockets.on('connection', function (socket) {
  socket.emit('hello');
});

Client est droit débranché après la connexion.

Définir le niveau de journalisation des socket.io, avec le niveau de log 2, nous ne retournerons pas voir tous les battements de cœur de chaque prise, mais seulement les poignées de main et déconnexions

io.set ( 'niveau de journal', 2);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top