У меня есть сервер socket.io и клиент работает правильно. Каждый раз, когда сервер не работает, клиент пытается подключиться через каждые 5 секунд. Когда сервер снова встает, они подключаются без проблем.
Но проблема возникает, когда я жду много времени, прежде чем сервер снова, когда сервер встанет, он выйдет из строя, показывая:
info - socket.io started
debug - client authorized
info - handshake authorized DqN4t2YVP7NiqQi8zer9
debug - setting request GET /socket.io/1/websocket/DqN4t2YVP7NiqQi8zer9
debug - set heartbeat interval for client DqN4t2YVP7NiqQi8zer9
debug - client authorized for
debug - websocket writing 1::
buffer.js:287
pool = new SlowBuffer(Buffer.poolSize);
^
RangeError: Maximum call stack size exceeded
Повторное подключение клиента (Выполняется каждые 5 секунд, пока не подключено):
function socket_connect() {
if (!socket) {
socket = io.connect('http://192.168.1.25:8088', { 'reconnect':false, 'connect timeout': 5000 });
} else {
socket.socket.connect();
}
socket.on("connect", function() {
clearInterval(connect_interval);
connect_interval = 0;
socket.emit('player', { refresh_data:true });
});
}
На стороне сервера, только с экземпляром сокета, он выходит из строя:
var io = require('socket.io').listen(8088);
Я думаю, что проблема такова:
Когда сервер поднимается, он восстанавливает все соединения, выдаваемые клиентом каждые 5 секунд (15 часов отключается * переключение 60 м * 60 с/5 секунд), и он сработает.
Что я могу сделать, чтобы закрыть соединения, которые пытается сделать сервер?
PS: Если я перезагружу клиента, а после сервера, он работает