Когда кто-то подключается к серверу node, я сохраняю массив со всеми сокетами. Таким образом, я могу передавать сообщения всем пользователям, когда это необходимо, или перебирать пользователей, чтобы подсчитывать количество онлайн-пользователей и т.д.
Все это прекрасно работает, но когда происходит событие on disconnect, я не получаю сокет в своих аргументах. Есть ли другой способ узнать, какой сокет просто отключен?
var allClients = [];
io.sockets.on('connection', function(socket) {
allClients.push(socket);
socket.on('disconnect', function(socket) {
console.log('Got disconnect!');
var i = allClients.indexOf(socket);
delete allClients[i];
});
});
Конечно, приведенный выше пример не работает, поскольку событие disconnect не дает аргумент сокета (или любой другой аргумент). Итак, есть ли еще одно событие, которое срабатывало перед отключением, где сокет все еще существует?
Али