node.js - socket.io клиент не может подключиться к серверу
имею такую связку:
Серверная часть:
io.use((socket, next) => {
socket.clientIp = socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress.replace('::ffff:', '');
//Проверка на наличие клиента в списке
if(isClientInWhiteList(socket.clientIp)) {
return next();
} else {
return next(new Error("Unauthorized"));
}
})
io.on('connection', socket => {
console.log('New connection');
});
Клиентская часть:
const io = require('socket.io-client');
const init = async () => {
const socket = io.connect('http://127.0.0.1:3000');
socket.on('connect', () => {
console.log("Successfully connected");
}).on('error', (err) => {
console.log(err)
});
}
init();
Т.е. на сервере идёт проверка наличия IP клиента в списке, и если все хорошо, то его пропускает. Проблема в том, что после пропуска клиента, событие connection на сервере триггерит не один раз, а постоянно, при этом же в выводе console.log(socket) connected значится как true на сервере, но на клиенте как false. Клиентская часть не реагирует вообще ни на какие события, будь то коннект/дисконнект или кастомные, которые я отправляю с сервера.
upd: такое ощущение, что socket.io-client вообще перестал работать, ибо дебаг вообще ничего не показывает.
upd: Решение: проблема оказалась таки в пакете, как и писал выше. Решилась полным удалением этих пакетов локально и глобально с очисткой кэша и последующей переустановкой.