Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Javascript 一次连接多个房间Socket.io_Javascript_Node.js_Sockets_Socket.io - Fatal编程技术网

Javascript 一次连接多个房间Socket.io

Javascript 一次连接多个房间Socket.io,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,我有一个应用程序,用户可以获得他们所在聊天室的列表,然后他们可以点击进入任何他们想要的特定聊天室。当前,当用户单击某个特定的聊天室时,套接字加入聊天室,当用户返回聊天室的主列表时,套接字离开聊天室。这意味着当用户在聊天列表页面上时,他们的套接字不在任何聊天室(连接事件创建的默认聊天室除外),因此当用户在该页面上时,不会实时向他们推送新消息 我计划,当用户加载聊天列表页面时,他们会在该点加入所有聊天室 我可以看到您可以像这样向多个房间发射: io.to('room1')。to('room2')。t

我有一个应用程序,用户可以获得他们所在聊天室的列表,然后他们可以点击进入任何他们想要的特定聊天室。当前,当用户单击某个特定的聊天室时,套接字加入聊天室,当用户返回聊天室的主列表时,套接字离开聊天室。这意味着当用户在聊天列表页面上时,他们的套接字不在任何聊天室(连接事件创建的默认聊天室除外),因此当用户在该页面上时,不会实时向他们推送新消息

我计划,当用户加载聊天列表页面时,他们会在该点加入所有聊天室

我可以看到您可以像这样向多个房间发射:

io.to('room1')。to('room2')。to('room3')。emit('some event')

有没有办法在套接字中同时连接多个房间

socket.join('room1')。join('room2')。join('room3')
? 或
socket.join('room1','room2','room3')

还是我最好做一些事情,比如:

rooms = ['room1', 'room2', 'room3'];

rooms.forEach(room => {
   socket.join(room)
});

是的,只需将数组放入join函数:

rooms = ['room1', 'room2', 'room3'];
socket.join(rooms);
文件: