2012-12-09 42 views
1

我正在构建一个用于协作编辑文档的Node.js应用程序。每个文档都会有一个单独的私人聊天(使用Socket.IO构建)。套接字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) {...}

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

回答

0

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

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

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

相关问题