【发布时间】:2014-11-07 22:32:04
【问题描述】:
我正在尝试查找客户端当前在断开连接事件(关闭浏览器/重新加载页面/互联网连接已断开)时所在的房间列表。
我需要它的原因如下:用户进入了几个房间。然后其他人也做了同样的事情。然后他关闭浏览器选项卡。我想通知他所在房间里的所有人他离开了。
所以我需要在 on 'disconnect' 事件中做点什么。
io.sockets.on('connection', function(client){
...
client.on('disconnect', function(){
});
});
我已经尝试了两种方法,发现都是错误的:
1) 遍历adapter.rooms。
for (room in client.adapter.rooms){
io.sockets.in(room).emit('userDisconnected', UID);
}
这是错误的,因为适配器房间包含所有房间。不仅是我的客户所在的房间。
2) 通过client.rooms。这将返回客户端所在房间的正确列表,但在断开连接事件时不返回。断开连接时,此列表已为空 []。
那我该怎么做呢?在撰写本文时,我正在使用最新的 socket.io:1.1.0
【问题讨论】:
标签: node.js socket.io socket.io-1.0