当有人连接到节点服务器时,我会保留一个包含所有套接字的数组。这样我就可以在需要的时候向每个人广播消息,或者循环访问用户来计算在线用户的数量等。
所有这些都可以正常工作,但是当触发断开连接事件时,我的参数中没有收到套接字。还有另一种方法可以知道哪个套接字刚刚断开连接?
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];
});
});
当然上面的例子不起作用,因为断开事件没有给出套接字参数(或任何其他参数)。那么在断开连接之前是否有另一个事件在套接字仍然存在的情况下触发?
阿里