我正在使用WebSockets构建一个复杂的聊天应用程序。我使用Node.JS的Socket.IO库来实现协议。我应该为每个聊天创建单独的命名空间,还是为每个聊天创建单独的空间?
Socket.IO中Namespaces和Rooms之间的主要区别是什么?
答案 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
}
});