Search code examples
androidiphonexmppchatreal-time-updates

Should I consider XMPP for any chat app


For a chat app, with extended features (not related to chat but realtime data) with support for Websocket and SocketIO based server, do I really need to integrate or consider XMPP. Isn't XMPP overkill for a simple file sharing (S3 storage), chat and other data communication (server status etc).

In my application, custom data is fetched from different storage, need to push to Message Queue in some event, and store uploaded file in S3. All these are not XMPP supported, So anyhow I will have to customize XMPP server implementations a lot if I choose it as backend.

Do you think I would be better off implementing all these by my own, compleletly skipping XMPP. Or, is there anything in XMPP which I may have missed for considering it.

Support required in app:

  1. Websocket
  2. Long polling ajax
  3. S3 storage
  4. Redis / Aerospike DB
  5. REST call to other services hosted on different machines
  6. Android Client
  7. iOS client
  8. Windows client based on Qt

Solution

  • XMPP, formerly Jabber, is based on XML. I'm an old hand with XML, yet even I can see that it was chatty and redundant in creating open and close element tags, and also required a heck of a lot of open and close quotes.

    What seems to be far more popular these days, especially in the NoSQL arena, are syntactically terser codifications of data such as JSON, or BSON (Binary JSON).

    JSON: http://www.json.org/ Binary JSON: http://bsonspec.org/

    Is there something specific in the schema, syntax, parsing or web-baed reification of XML which is a reason you want to use XMPP? Otherwise, you might find JSON an easier and more efficient way to encode data.

    Also let me know if this answer was useful.