【问题标题】:Using ejabberd for in-browser chat使用 ejabberd 进行浏览器内聊天
【发布时间】:2012-04-21 05:26:51
【问题描述】:
ejabberd 聊天服务器能否与 node.js/tornado/socket.io 等可扩展且快速的服务器技术集成以实现浏览器内聊天?
在这种情况下,ejabberd 服务器可能运行在后端,而前端可以使用 node.js/socket.io 等与客户端浏览器进行通信。所有聊天消息都需要通过 ejabberd 服务器进行路由。与以传统方式直接使用 ejabberd 相比,所有这些都有意义吗?它是否具有足够的可扩展性?
【问题讨论】:
标签:
node.js
chat
tornado
ejabberd
livechat
【解决方案1】:
是否不使用在浏览器中运行的现有 Candy 客户端 (http://candy-chat.github.com/candy/) 针对后端 ejabberd 服务器?
【解决方案2】:
我没有看到在您的架构中添加组件的好处。
ejabberd 和 XMPP 通常与 Web 技术和基于 Javascript 的客户端配合得很好。
您可以使用两种主要技术:
- 基于 Websocket 的 XMPP 是最现代的方法。 ejabberd 原生支持它。这意味着您可以创建一个基于浏览器的 XMPP 客户端来连接到 ejabberd。
- BOSH 上的 XMPP。这是对 HTTP 协议的请求-响应性质的 XMPP 连接性质的模拟。这意味着您仍然可以为不支持 Websockets 的浏览器做 XMPP 聊天客户端。
Javascript XMPP 库通常同时支持 Websockets 和 BOSH。例如,您可以查看 Strophe 来实现您的 Javascript Web 客户端。