使用ejabberd进行浏览器内聊天

ejabberd聊天服务器可以集成可扩展和快速的服务器技术,如node.js / tornado / socket.io来实现浏览器内聊天吗?

在这种情况下,ejabberd服务器可能运行在后端,而前端可以使用node.js / socket.io等与客户端浏览器进行通信。 所有聊天消息都需要通过ejabberd服务器进行路由。 所有这一切是否有意义,并且与传统方式直接使用ejabberd相比,是否足够可扩展?

Wny不使用在浏览器内运行的现有Candy客户端(http://candy-chat.github.com/candy/),而不使用后端ejabberd服务器?

我不认为在您的架构中添加组件是有好处的。

一般来说ejabberd和XMPP在networking技术和基于Javascript的客户端上运行良好。

有两种主要技术可以使用:

  • Websocket上的XMPP是最现代的方法。 它由ejabberd本地支持。 这意味着您可以创build一个基于浏览器的XMPP客户端连接到ejabberd。
  • XMPP over BOSH。 这是对HTTP协议的请求响应性质的XMPP连接性质的仿真。 这意味着您仍然可以为不支持Websockets的浏览器使用XMPP聊天客户端。

Javascript XMPP库通常支持Websockets和BOSH。 你可以看看Strophe来实现你的Javascript web客户端。