通过Socket.IO为WebSocketdevise模式

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

命名空间和Socket.IO中的房间之间的主要区别是什么?

如果所有的客户都是同一types,通常使用房间。

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

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