Почему socket.io не переставая генерирует новые соединения?
У меня есть приложение на express, в котором используется socket.io. На серверной стороне каждые 50 миллисекунд генерируется запрос:
setInterval(() => {
io.emit('data', data);
}, 50);
На стороне клиента запрос принимается и устанавливается значение для переменной:
var list = {};
socket.on('data', (data) => {
list = data;
});
Однако вместо использования 1 постоянного соединения, socket.io генерирует по 6-7 соединений в секунду. Почему это происходит?
Ответы (2 шт):
Почему socket.io не переставая генерирует новые соединения?
Предполагаю:
- потому, что ваша серверная реализация не поддерживает
ws - что-то неверно настроено
- что-то блокирует
wsпоэтому socket.io переключился наxhr
Cмотри на скриншоте:
type - xhr (вместо ws или wss)
socket.io это не только WS
const socket = io({ transports: ['websocket'] }); // on reconnection, reset the transports option, as the Websocket // connection may have failed (caused by proxy, firewall, browser, ...) socket.on('reconnect_attempt', () => { socket.io.opts.transports = ['polling', 'websocket']; });
пример
Проблема может заключаться в том что версии socket.io-client и socket.io могут не совпадать и из за этого может возникнуть такая проблема. Также распространенная проблема (особенно у новичков) когда устанавливаете не забывайте точку , то есть не socketio , а socket.io. Можете проверить не ошиблись ли вы в package.json
