通过Socket.IO设计WebSockets模式

时间:2016-03-09 10:51:38

标签: node.js sockets websocket socket.io

我正在使用WebSockets构建一个复杂的聊天应用程序。我使用Node.JS的Socket.IO库来实现协议。我应该为每个聊天创建单独的命名空间,还是为每个聊天创建单独的空间?

Socket.IO中Namespaces和Rooms之间的主要区别是什么?

1 个答案:

答案 0 :(得分:3)

如果所有客户都属于同一类型,通常会使用会议室。

如果有不同类型的客户端,请使用命名空间。例如,匿名用户和经过身份验证的用户。在这种情况下,可能需要以不同方式处理传入的连接请求。

var guest = io.of('/guest');
guest.on('connection', function(socket) {
   console.log('A guest client connected');
});

var user = io.of('/user');
user.on('connection', function(socket) {
   var authenticated = authenticate(); //authenticate the user
   if (!authenticated) {
      // log attempt and disconnect the client
   }
});