слушатель для разъединения создается всегда, когда устанавливается новое соединение.
socketIo.on('connection',async(socket) => {
socket.handshake.session.save((err)=> {if(err)return err;});
socketIo.emit('site online', Object.keys(socketIo.sockets.sockets).length)
socket.on('disconnect', () => { <--- Created everytime 'connection' event received
socketIo.emit('site online', Object.keys(socketIo.sockets.sockets).length)
})
await UserController(<any>socket)
})
Слушатель должен быть создан вне другого слушателя:
socketIo.on('connection',async(socket) => {
socket.handshake.session.save((err)=> {if(err)return err;});
socketIo.emit('site online', Object.keys(socketIo.sockets.sockets).length)
await UserController(<any>socket)
})
socket.on('disconnect', () => {
socketIo.emit('site online', Object.keys(socketIo.sockets.sockets).length)
})
Все это происходит асинхронноТаким образом, вы просто создаете 2 слушателя параллельно.С вашим кодом, если у вас есть 80 соединений, у вас также есть 80 слушателей разъединения.Это, я думаю, может вызвать некоторые проблемы.