📜  在 socket.io 中将套接字添加到房间 - Javascript (1)

📅  最后修改于: 2023-12-03 15:07:49.319000             🧑  作者: Mango

在 socket.io 中将套接字添加到房间 - JavaScript

在使用 socket.io 进行实时通信时,我们经常需要将套接字(socket)添加到一个房间(room)中。这样,我们就可以向该房间中的所有套接字发送消息,而不必逐个发送。

添加套接字到房间

要将套接字添加到房间,我们可以使用 join 方法:

socket.join('roomName');

这会将 socket 对象添加到名为 roomName 的房间中。如果该房间不存在,则会自动创建。

从房间中移除套接字

要将套接字从房间中移除,我们可以使用 leave 方法:

socket.leave('roomName');

这会将 socket 对象从名为 roomName 的房间中移除。如果该套接字不在该房间中,则不会有任何效果。

获取房间中的套接字列表

要获取名为 roomName 的房间中的所有套接字,我们可以使用 sockets 属性:

const sockets = io.of('/').in('roomName').sockets;

这会返回一个所有套接字的对象。我们可以使用 Object.keys 方法获取套接字 ID 的数组:

const socketIds = Object.keys(sockets);

现在,我们就可以向这些套接字发送消息了:

socketIds.forEach(socketId => {
  io.to(socketId).emit('message', 'Hello, everyone!');
});
结论

在 socket.io 中,将套接字添加到房间是一项非常有用的功能。通过使用房间,我们可以轻松地向多个套接字发送消息,而不必逐个发送。