Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在socket.IO中一次性离开插座连接的所有房间_Node.js_Websocket_Socket.io - Fatal编程技术网

Node.js 如何在socket.IO中一次性离开插座连接的所有房间

Node.js 如何在socket.IO中一次性离开插座连接的所有房间,node.js,websocket,socket.io,Node.js,Websocket,Socket.io,我有一些代码,一个插座连接多个房间。在代码中的某个时刻,我想一次性离开所有房间,而不必断开插座。有可能这样做吗?如果是,那么我该怎么做?提前谢谢 我正在使用socket.IO,这是可能的。你可以不用断开插座就离开房间。只有在调用socket.disconnect()时,套接字才会断开连接 为此,您必须维护每个客户加入和离开的房间列表。要离开所有房间,请遍历此列表并调用socket.leave(roomname) 那真是太好了。。当我试图离开一个先前未连接套接字的房间时,是否有可能出现异常?我指的

我有一些代码,一个插座连接多个房间。在代码中的某个时刻,我想一次性离开所有房间,而不必断开插座。有可能这样做吗?如果是,那么我该怎么做?提前谢谢


我正在使用socket.IO,这是可能的。你可以不用断开插座就离开房间。只有在调用socket.disconnect()时,套接字才会断开连接


为此,您必须维护每个客户加入和离开的房间列表。要离开所有房间,请遍历此列表并调用socket.leave(roomname)

那真是太好了。。当我试图离开一个先前未连接套接字的房间时,是否有可能出现异常?我指的是0.8.7版,只考虑套接字离开现有房间的情况。如果文件室不存在,则不会执行任何操作,即使是例外。您不需要维护文件室列表,socket.io会为您执行此操作。只需遍历
io.sockets.manager.roomClients[socket.id]
socket.leave
的键即可。@Druska
io.sockets.adapter.sids[socket.id]
是查找房间的更新键。下面代码为离开所有房间的插座
var-rooms=io.sockets.adapter.sids[socket.id];对于(房间中的房间){socket.leave(房间);}
socket.leaveAll()@Poelinca Dorin请重新打开