使用 socket.io 管理多个聊天室的正确方法是什么?

2024-01-04

使用 socket.io 管理多个聊天室的正确方法是什么?

所以在服务器上会有这样的内容:

io.sockets.on('connection', function (socket) {
  socket.on('message', function (data) {
    socket.broadcast.emit('receive', data);
  });
});

现在,这对于一个房间来说效果很好,因为它将消息广播给所有连接的人。那么,如何向特定聊天室中的人发送消息呢?

添加 .of('/chat/room_name')? 或者将每个人的数组存储在一个房间中?


Socket.IO v0.7 现在为您提供了一个Socket每个您定义的命名空间:

var room1 = io.connect('/room1');
room1.on('message', function () {
    // chat socket messages
});
room1.on('disconnect', function () {
    // chat disconnect event
});

var room2 = io.connect('/room2');
room2.on('message', function () {
    // chat socket messages
});
room2.on('disconnect', function () {
    // chat disconnect event
});

使用不同的套接字,您可以有选择地发送到您想要的特定命名空间。

Socket.IO v0.7也有“房间”的概念

io.sockets.on('connection', function (socket) {
  socket.join('a room');
  socket.broadcast.to('a room').send('im here');
  io.sockets.in('some other room').emit('hi');
});

Source: http://socket.io/#announcement http://socket.io/#announcement

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 socket.io 管理多个聊天室的正确方法是什么? 的相关文章

随机推荐