【发布时间】:2014-11-07 21:37:45
【问题描述】:
我有一个简单的 socket.io 服务器(1.1.0 vesrion),用户可以在其中加入/离开房间。问题是当用户断开连接(重新加载页面)时,他并没有离开他所在的房间。
当我打印他所在的房间列表时,它总是在增长。
io.sockets.on('connection', function(client){
client.on('disconnect', function() {
console.log(client.adapter.rooms);
}
}
我看到用户第一次断开连接时:
{ V_6ilicTsMPK9CGQAAAA: []}
重新加载页面几次后,我看到断开连接:
{ V_6ilicTsMPK9CGQAAAA: [],
'6g1CpUyyKQtAbI4AAAAB': [],
MS1VY1yxtVyRaG3XAAAC: [],
TtXxNqVu5sHq0e9CAAAD: [],
...
'1bPs4CRLQhEH0NKIAAAJ':
我尝试通过执行 client.leaveAll(); 手动离开房间;甚至遍历client.adapter.rooms 并通过client.leave(room) 删除,但情况是一样的。
我可以用这个无限增长的房间列表做什么。
【问题讨论】: