node.js не отправляет сокет при отключении #39;

Когда кто-то подключается к серверу узла, я сохраняю массив со всеми сокетами. Таким образом, я могу рассылать сообщения всем, когда это необходимо, или перебирать пользователей, чтобы подсчитать количество онлайн-пользователей и т. д.

Все это работает нормально, но когда срабатывает событие отключения, я не получаю гнездо в моих аргументах. Есть ли другой способ узнать, какой сокет только что отключился?

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];
   });
});

Конечно, приведенный выше пример не работает, потому что событие разъединения не дает аргумента сокета (или любого другого аргумента ). Итак, есть ли другое событие, которое срабатывает перед отключением, когда сокет все еще существует?

Ali

10
задан Ali Alwash 26 March 2012 в 08:30
поделиться