Я пытаюсь настроить сервер node.js, используя socket.io. Проблема, которую я вижу, заключается в том, что мой сервер отключает + повторное подключение клиента каждые 25 секунд.node.js sockets.io отключение каждые ~ 25 секунд (связанное с биением)
Вот мой код сервера:
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.");
});
}
Мой клиент подключается с помощью распределения socket.io.js. Насколько я понимаю (видимо, неправильно), мне нужно, чтобы мой клиент отправлял «heartbeat» (сообщение «:: 2») каждые 15 секунд, чтобы сервер не думал, что соединение мертво и отключено. В основном:
<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>
Но клиент еще и отсоединение + подключенные через каждые 25 секунд (за исключение самого первым 25-второго тик).
Журнал node.js консоль сервера выглядит следующим образом (возможно, вырезать некоторые ранее одинаковые фазы соединения/разъединения, как это было эхо каждые 25 секунд):
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
Как я могу остановить свой сервер от отсоединение + повторное подключение клиента каждые 25 секунд?
, насколько я знаю, вам не нужно вручную отправить сердцебиение пакеты, как это делается с помощью Socket.io. Попробуйте проверить события соединения и разъединения после того, как вы вынесете свои ручные биения. – f0x
Вы когда-нибудь разрешали это? \t У меня есть точная проблема. Я понизил рейтинг до 0.8.7 и все тот же вопрос. отладочный тайм-аут для клиента 3744936361854682925 info - транспортный отладочный конец - установка таймаута закрытия для клиента 3744936361854682925 отладка - очищенный тайм-аут закрытия для клиента 3744936361854682925 –
@PranoyC Здесь может возникнуть обходной путь: https://github.com/socketio/socket .io/issues/777 Кроме того, я недавно использовал новейшие версии socket.io и не столкнулся с какими-либо проблемами. – Josh1billion