通过 Socket.IO 的 WebSocket 设计模式
Posted
技术标签:
【中文标题】通过 Socket.IO 的 WebSocket 设计模式【英文标题】:Design pattern for WebSockets through Socket.IO 【发布时间】:2016-06-23 16:52:51 【问题描述】:我正在使用 WebSockets 构建一个复杂的聊天应用程序。我使用 Node.JS 的 Socket.IO 库来实现协议。我应该为每个聊天创建单独的命名空间,还是为每个聊天创建单独的房间?
Socket.IO 中的命名空间和房间的主要区别是什么?
【问题讨论】:
【参考方案1】:如果所有客户端都属于同一类型,通常会使用房间。
如果有不同类型的客户端,请使用命名空间。例如,匿名用户和经过身份验证的用户。在这种情况下,可能需要以不同的方式处理传入的连接请求。
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
);
【讨论】:
以上是关于通过 Socket.IO 的 WebSocket 设计模式的主要内容,如果未能解决你的问题,请参考以下文章
怎么使用 Socket.io 连接 WebSocket 服务
Socket Socket.io Websocket HTTP 之间的区别