Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我们正在开发一个基于聊天的网站。在进行了广泛的文献回顾之后,我们选择使用 Tornado 作为我们的 Web 服务器,使用 socket.io 作为客户端 JavaScript。
我们现在正在扩展我们的应用程序,以一次为大约 50,000 名用户提供服务。所以,我想问一下 Ejabberd 是否适合我们的架构(同意我们对改变持开放态度的事实,这会极大地改变我们当前的实现,只要它是值得的)或者是否有任何其他技术堆栈可以扩展相同的。
我们的重点是一对一的用户聊天。
简而言之,它可以,但有一个小缺点:
XMPP 与 Web 客户端通信的标准方式是BOSH。BOSH 是一种通过 HTTP 工作的长轮询解决方案。Websockets 还不是图片的一部分,尽管有一个草案草案。
也就是说,最常用于 Web 客户端的 javascript 库是Strophe。ejabberd和strophe都有一个(实验性的?)插件,通过 websocket 进行通信。该插件在此处进行了描述。