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

用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');
});

资料来源:http://socket.io/#announcement

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...