向 Socket.io 中的其他房间发送消息
Send message to other rooms in Socket.io
我知道如何向同一个房间的所有客户发送消息。我正在使用以下代码向同一房间(服务器端)的客户端发送消息。
io.to(Array.from(socket.rooms)[1]).emit("send message","We are in Same room")
//Array.from(socket.rooms)[1] -> getting room number from the map
但是现在我想发送消息给所有不在当前房间的客户。
从特定房间获取带有插座 ID 的数组,并使用该数组从所有已连接的插座中排除:
const socketsFromRoom = Array.from(await io.in("my_room").allSockets());
Array.from(await io.allSockets())
.filter((socketId) => !socketsFromRoom.includes(socketId))
.forEach((socketId) => {
io.sockets.sockets.get(socketId).emit("send_message");
});
我知道如何向同一个房间的所有客户发送消息。我正在使用以下代码向同一房间(服务器端)的客户端发送消息。
io.to(Array.from(socket.rooms)[1]).emit("send message","We are in Same room")
//Array.from(socket.rooms)[1] -> getting room number from the map
但是现在我想发送消息给所有不在当前房间的客户。
从特定房间获取带有插座 ID 的数组,并使用该数组从所有已连接的插座中排除:
const socketsFromRoom = Array.from(await io.in("my_room").allSockets());
Array.from(await io.allSockets())
.filter((socketId) => !socketsFromRoom.includes(socketId))
.forEach((socketId) => {
io.sockets.sockets.get(socketId).emit("send_message");
});