📜  socket io 广播到房间 - Javascript (1)

📅  最后修改于: 2023-12-03 14:47:30.406000             🧑  作者: Mango

Socket IO 广播到房间

Socket IO 是实时通信库,通过 WebSockets 实现了客户端和服务器之间的双向通信。

广播到房间可以让多个客户端在同一个房间内进行通信,这非常便捷。在 Socket IO 中,可以通过 socket.join() 方法加入一个房间,在房间内使用 io.to('room').emit() 方法进行广播。以下是使用 Socket IO 广播到房间的示例代码。

服务器代码示例
// 引入 socket.io
const io = require('socket.io')(server);

// 定义房间
const room = 'my-room';

// 监听连接事件
io.on('connection', (socket) => {
  console.log('a user connected');

  // 加入房间
  socket.join(room);

  // 监听广播事件
  socket.on('broadcast', (data) => {
    console.log(data);
    // 广播到房间
    io.to(room).emit('broadcast', data);
  });

  // 监听断开连接事件
  socket.on('disconnect', () => {
    console.log('user disconnected');
  });
});
客户端代码示例
// 连接到服务器
const socket = io.connect('http://localhost:3000');

// 加入房间
socket.emit('join', 'my-room');

// 监听广播事件
socket.on('broadcast', (data) => {
  console.log(data);
});

// 发送广播事件
socket.emit('broadcast', 'hello world');

在上面的示例中,当客户端连接到服务器时,会自动加入名为 my-room 的房间。当客户端发送 broadcast 事件时,服务器会将消息广播到房间内的所有客户端。客户端也会监听 broadcast 事件,当收到广播时会在控制台上打印出消息。

以上就是使用 Socket IO 广播到房间的示例代码。如果你想了解更多关于 Socket IO 的内容,可以查看官方文档:https://socket.io/docs/