[jdev] Help choosing the right technology

Michael Weibel michael.weibel+xmpp at gmail.com
Tue Nov 13 07:12:15 UTC 2012

Hi andy,

> Real time communication.

You'll get that for free when you open a connection to the XMPP Server.

> Push based communication.

Besides ejabberd commercial, I don't know which servers implement this. 

> Guaranteed message delivery

This is one of the most important things for mobile (as you might know already). There's XEP-184[1] for this and you have to watch out that your server implements this in order to know that the server really received this message. 
Besides this XEP there exist different implementations by some servers.

> Scalability

This entirely depends on the server and, more specifically on your use case. You might want to do load tests using e.g. Tsung[2].

> Machine to Machine communication

What do you mean with this? XMPP is a federated protocol, therefore S2S communication is builtin. 

> Mobile friendly

XML is considered verbose. You can enable stream compression if the server supports it. On the last XMPP Summit they talked about XML->JSON translating which might help to reduce verbosity. 

> always on 

I don't know what you mean with this, can you elaborate?

> Is XMPP good to build a Mobile app?

Message reliability is very important (as said previously). Also you'll need an XMPP library which is robust. There's e.g. asmack[3] for Android and e.g. XMPPFramework[4] for iOS.

Hope this helps,

[1]: http://xmpp.org/extensions/xep-0184.html
[2]: http://tsung.erlang-projects.org/
[3]: https://github.com/rtreffer/asmack
[4]: https://github.com/robbiehanson/XMPPFramework

More information about the JDev mailing list