Frage

Das Socket.io -Dokumentation erwähnt, dass Herzschläge wie SO deaktiviert werden können:

io.disable('heartbeats');

Leider trennen sich die Kunden, obwohl dies die Hearbeats nicht zu verhindern scheint, die Kunden immer noch zu trennen, wenn sie keine Hearbeats senden.

Das Folgende funktioniert auch nicht:

io.set('heartbeats', false);

Ich habe versucht, einige Intervalle auf 0 zu setzen, ohne Erfolg:

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

Irgendwelche Vorschläge zu Was könnte Herzschläge richtig deaktivieren?

War es hilfreich?

Lösung

Der Code ist

io.disable('heartbeats');

Erfolgreich auf Socket.io v0.8.7 getestet

Ohne Deaktivieren

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

Mit Deaktivieren

Debug - Kunde autorisiert

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"}]}

Andere Tipps

Mit Herzschlägen stimmt etwas nicht. Ich habe die neueste Socket.io und Node 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');
});

Der Client wird direkt nach der Verbindung getrennt.

Legen Sie die Protokollebene von Socket.io ein, wobei die Protokollstufe 2 nicht alle Herzschläge jedes Sockel

io.set ('log Level', 2);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top