提问者:小点点

一次加入多个房间socket.io


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

我计划当用户加载聊天列表页面时,他们在那个点加入所有房间。

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

io.to('Room1').to('Room2').to('Room3').emit('Some Event');

有没有在Socket中同时连接多个房间的方法?

socket.join('Room1').join('Room2').join('Room3')? 或socket.join('Room1','Room2','Room3')

或者我最好做一些类似的事情:

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

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

共1个答案

匿名用户

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

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

文档:https://socket.io/docs/server-api/#socket-join-rooms-callback