Отключение сердечных сокращений Socket.io (Node.js) - PullRequest
4 голосов
/ 08 сентября 2011

В документации socket.io упоминается, что сердцебиения могут быть отключены следующим образом:

io.disable('heartbeats');

К сожалению, хотя это, кажется, мешает отправке сердцебиенийклиенты по-прежнему отключаются, когда они не отправляют звуковые сигналы.

Следующее также не работает:

io.set('heartbeats', false);

Я попытался установить некоторые интервалы на 0 безуспех:

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

Есть ли какие-либо предложения о том, как правильно отключить сердцебиение?

Ответы [ 3 ]

4 голосов
/ 22 декабря 2011

код

io.disable('heartbeats');

Успешно протестировано на socket.io v0.8.7

Без отключения

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

С отключением

debug - клиент авторизован

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"}]}
3 голосов
/ 06 мая 2012

Что-то не так с сердцебиением. У меня последняя версия socket.io и узел 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');
});

Клиент отключается сразу после подключения.

1 голос
/ 05 июня 2014

Установите уровень журнала socket.io, при уровне журнала 2 мы не увидим все сердцебиения каждого сокета, а только рукопожатия и отключения

io.set («уровень журнала», 2);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...