Question

Can ejabberd chat server be integrated with scalable and fast server technologies like node.js/tornado/socket.io to implement an in-browser chat?

In that case, ejabberd server might run at the backend while front end can use node.js/socket.io etc. to communicate with client browsers. All the chat messages will need to be routed through the ejabberd server. Does all this make sense and is it scalable enough as compared to directly using ejabberd in the traditional way?

Was it helpful?

Solution

Wny not use an existing Candy client (http://candy-chat.github.com/candy/) that runs inside a browser, against backend ejabberd server?

OTHER TIPS

I do not see the benefit in adding a component in your architecture.

ejabberd and XMPP in general are playing well with web technologies and Javascript based client.

There is two major technologies you can use:

  • XMPP over Websocket is the most modern approach. It is natively supported by ejabberd. It means that you can create a browser-based XMPP client to connect to ejabberd.
  • XMPP over BOSH. This is an emulation of XMPP connected nature over the request-response nature of the HTTP protocol. It means that you can still do XMPP chat client for browser that do not support Websockets.

Javascript XMPP libraries usually supports both Websockets and BOSH. You can for example have a look at Strophe to implement your Javascript web client.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top