Здравствуйте, недавно я начал изучать socket.io. С помощью них я хочу отображать всех пользователей, кто сейчас находится онлайн. Вроде бы все получается, но вот только отключение пользователя работает не так, как запланировано. Логика такова: при посещении сайта, пользователь присылает свой логин на сервер, и тот записывает его в массив пользователей, находящихся онлайн. При выходе, логин пользователя удаляется из массива пользователей, находящихся онлайн. Но, при выходе одного пользователя, всех пользователей выписывает из массива. Из-за чего это происходит?
Serverconst users = [];
io.on('connection', (socket) => {
socket.on('global room', (global) => {
socket.login = global.login;
users.push(socket.login);
socket.join(global.room);
socket.emit('onlineUsers', users);
});
socket.on('disconnect', () => {
users.splice(socket.login, 1);
socket.emit('onlineUsers', users);
})
});
Clientvar socket = io();
socket.on('connect', function(){
var room = 'global room';
var userLogin = $('#userLogin').val();
socket.emit('global room', {
room: room,
login: userLogin
});
socket.on('onlineUsers', function(users){
console.log(users);
});
});