Pregunta

We have to develop a native mobile app for Instant Messaging using a SUITABLE protocol. Also we are to develop a website for that application so that those who cannot login to mobile can continue their Instant Messaging through the website.

Later on, we would be adding the facilities of voice and video calls to the both native mobile app as well as the website.

  1. Now my question is that, based on the above situation, which protocol we should go with? I did some research on the internet about that and am unable to choose amongst XMPP, MQTT and MUMBLE.

Which one would be the best among them for the above criteria?

  1. Also should I be using the same protocol for both the mobile app as well as the website? (no idea at all). Does choosing either the same or different protocols for native mobile apps as well as a website matter at all?

Consider me a novice here.

Your response would really mean a lot to me.

I am new to web development so correct me wherever I am wrong.

¿Fue útil?

Solución

The answer to your question XMPP vs MQTT vs mumble really depends upon a number of factors that you did not describe in your question. Mainly on your non functional requirements.

XMPP is an xml based protocol originally designed as an instant messaging protocol. It has quite a high overhead in terms of number and size of messages in handling presence between all the clients. You could certainly base your implementation on XMPP. Google talk is based on XMPP and it uses XMPP to set up VOIP sessions using an extension to XMPP called Jingle.

MQTT is a general purpose low overhead publish/subscribe protocol. It is not specifically targeted at implementing instant messaging however Facebook uses it as the basis for their Facebook messenger. MQTT is a more efficient protocol in terms of its message size and its keepalive requirements so you might choose this if you plan to scale up to very large numbers of users or if you need your mobile clients to be highly responsive, even on low capability devices. If you choose MQTT then you will be left to design the "application level" protocol messages yourself, rather than following a standard. MQTT can certainly be used as the transport over which to set up voice chat and video streams.

You do not need to use the same protocol for mobile client versus website as long as your server side can appropriately process the interactions with mobile clients and web clients you could choose different protocols.

Otros consejos

Facebook messenger does support voice messaging.... http://mashable.com/2013/02/21/facebook-voice-messages/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top