【发布时间】:2012-06-09 09:20:25
【问题描述】:
我有一些代码用来连接多个房间。在代码中的某个时刻,我想一次离开所有房间,而不断开插座。是否有可能做到这一点?如果是,那么我该怎么做?提前谢谢..
我正在使用 socket.IO
【问题讨论】:
-
@Poelinca Dorin 请重新打开
标签: node.js websocket socket.io
我有一些代码用来连接多个房间。在代码中的某个时刻,我想一次离开所有房间,而不断开插座。是否有可能做到这一点?如果是,那么我该怎么做?提前谢谢..
我正在使用 socket.IO
【问题讨论】:
标签: node.js websocket socket.io
这是可能的。您可以在不断开插座的情况下离开房间。仅当您调用 socket.disconnect() 时,套接字才会断开连接。
为此,您必须维护每个客户加入和离开的房间列表。要离开所有房间,请遍历此列表并调用 socket.leave(roomname);
【讨论】:
io.sockets.manager.roomClients[socket.id] 和socket.leave 的键即可。
socket.rooms。
io.sockets.adapter.sids[socket.id] 是查找房间的更新版本。下面的代码离开插座的所有房间。 var rooms = io.sockets.adapter.sids[socket.id]; for(var room in rooms) { socket.leave(room); }