我最近一直在研究sockjs-tornado,正在为社交网站开发聊天功能。我试图了解用于构建可扩展多房间聊天功能的常用方法。我将概述我想到的几种方法,并希望获得反馈。现实世界中使用了哪些方法?这些方法有哪些优点和缺点?
其他一切都是开放的。
这似乎是最简单的方法。您创建一个订阅某些房间类的用户类。用户发送包含房间ID的消息类,服务器仅将循环中的消息重定向到已订阅该房间的用户。在我看来,这似乎是最糟糕的,因为复杂性显然至少是线性的。 (想象一下,500个用户一次连接到5个聊天室。)
这似乎也是一个坏主意,因为你可以随时在...不同的端口上运行500个服务器实例?我真的不确定这个方法的实现。
现在已经获得批准,很多库都内置了socketio。但是由于唯一的node.js支持,这不是一个选项。 (我在龙卷风服务器上。)特别是袜子没有内置支持多个“房间”。
我正在寻找资源/案例研究和行业标准。任何帮助将不胜感激。