Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

chat application: pubsubhubbub vs xmpp

I'm unsure on the best stack to build a chat application. Currently I'm thinking of two main options:

  • facebook tornado
    • cons: does not use the main chat protocol xmpp but pubsubhubbub
    • pros: i really like its simplicity for development (webserver + webframework); pubsubhubbub also seems simpler as a protocol than xmpp; and i know python
  • xmpp + bosch, punjab, ejabberd
    • cons: don't know erlang; overall seems a bit harder to develop
    • pros: uses xmpp protocol

The chat app will need to have the following:

  • Private messages
  • Public rooms
  • Private rooms
  • Chat history for rooms (not forever, just the last n messages)
  • html embedding
  • url to chat room

Both options seem scalable so that's not really my worry (we're thinking of running the app in amazon's ec2 as well). I know there's a project that builds a xmpp server using tornado but it's not ready for production use and our deadline isn't that big. Basically my main worry is ease of development vs somehow regretting later using pubsubhubbub to develop a chat app but I read somewhere that PubSubHubbub might eventually replace XMPP as REST replaced SOAP - so what do you think?

like image 913
scc Avatar asked Mar 18 '10 05:03

scc


1 Answers

Go for XMPP.

Out of the box, ejabberd has support for all your requirements. You won't need to see any erlang and write custom modules for ejabberd. And with Strophejs, XMPP in the browser (which is what you are apparently doing) is great.

For your last question about pubsubhubbub replacing XMPP, don't count on it. XMPP is over 10years old, solid open source and proprietary interoperable implementations both on client and server, and is elegant so it won't go away.

And you are developping a chat application which is what XMPP was made for.

like image 188
Eric Avatar answered Sep 28 '22 10:09

Eric