2

我正在构建一个用于协作编辑文档的 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) {...}

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

4

1 回答 1

0

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

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

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

于 2012-12-09T08:03:31.463 回答