套接字IO:何时使用会议室以及何时使用命名空间?

时间:2012-12-09 02:09:50

标签: node.js socket.io

我正在构建一个Node.js应用程序,用于协作编辑文档。每个文档都有一个单独的私人聊天(使用Socket.IO构建)。

现在我不清楚哪个是将每个聊天限制为仅限当前正在编辑该特定文档的成员的正确方法。

我应该使用单独的房间:     

io.sockets.on('connection', function (socket) {
      socket.join(documentId);
      socket.broadcast.to(documentId).emit('new member');
    });
    

或者我应该将每个文档聊天分成新的命名空间:     

var chat = io
    .of('/chat/' + documentId)
    .on('connection', function (socket) {...}

还是有第三种方法更适合我的需要吗?

1 个答案:

答案 0 :(得分:0)

Socket.IO命名空间用于控制服务器和客户端之间的通信管道。这将允许您有效地使用相同的连接用于多种目的。

您概述了使用房间和命名空间的好方法。这些应该在你的情况下一起使用。这不是一种或另一种情况。

最后,如果您发现内置的消息传递分段无法满足您的需求,您可以随时编写自己的消息,并在需要时简单地发出。我经常走这条路。