在sockets.io中,房间是一种轻量级的通信方式,用于将socket连接分组,以便可以在一组socket连接之间发送消息。以下是一个简单的示例,展示如何使用Sockets.io房间:
// 在server.js中
const io = require('socket.io')(server);
io.on('connection', (socket) => { // 加入房间 socket.join('room1');
// 从房间中离开 socket.leave('room1');
// 向房间中的所有连接发送消息 io.to('room1').emit('message', 'Hello, Room 1!');
// 向单个连接发送消息 const connectedClients = Object.keys(io.sockets.connected); const randomClient = connectedClients[Math.floor(Math.random() * connectedClients.length)]; io.to(randomClient).emit('message', 'Hello, Random Client!');
// 当连接关闭时,从所有房间中删除连接 socket.on('disconnect', () => { io.emit('user disconnected'); }); });
在上面的示例中,我们定义了一个'connection'事件处理程序,当socket连接到服务器时调用此处理程序。我们可以使用socket.join方法将连接添加到“room1”房间中,使用socket.leave方法将连接从房间中删除。我们可以使用io.to方法向“room1”房间中的所有socket连接发送消息,也可以使用io.to方法将消息发送到单个随机连接。最后,在socket关闭时,我们可以使用IO.emit方法从所有房间中删除连接。