4

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.

Vikas Prasad
  • 3,163
  • 5
  • 28
  • 39

2 Answers2

6

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.

ubuntugod
  • 592
  • 7
  • 16
rob9nicholson
  • 191
  • 1
  • 7
  • "MQTT can certainly used as the transport over which to set up voice chat and video streams." Does this line mean that we would be using MQTT just like we use HTTP but to set up voice or video streams we must bring in an external protocol like XMPP or Jingle? Or would we be sending the voice or video data from the user via MQTT only??? – Vikas Prasad Oct 29 '13 at 15:48
  • You would not want to send the actual voice or video data over MQTT or XMPP/Jingle. For the actual voice or video data you need to use a streaming protocol for example RTP (https://en.wikipedia.org/wiki/Real-time_Transport_Protocol). The purpose of XMPP/Jingle or a protocol over MQTT is for session initiation. If you find my answer helpful please accept it. Thanks. – rob9nicholson Oct 29 '13 at 17:56
  • so basically it means that if we were to include ONLY INSTANT MESSAGING(no voice or video chat) in our native app and we are going with MQTT, then we do not need to integrate XMPP at all? Going with only MQTT would be enough??? Isn't it? – Vikas Prasad Oct 30 '13 at 08:10
  • Yes, that is true. You could use only mqtt. No XMPP. This would be a particularly good choice if your objectives were to create a very light weight and responsive client. This is the choice that facebook made. – rob9nicholson Oct 30 '13 at 14:28
  • Thanks! I got my answer. So do you have any idea about MQTT? I mean can you guide me through the steps we should take to develop the instant messaging app using MQTT. I have no knowledge about MQTT. That we would be a great help for me??? Thanks again...:) – Vikas Prasad Oct 31 '13 at 06:31
  • mqtt.org is a great place to start – rob9nicholson Oct 31 '13 at 15:41
-1

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

hardillb
  • 54,545
  • 11
  • 67
  • 105
  • sorry I meant only the video call is not supported in the facebook mobile messenger. so can MQTT be used to set up the video-call or not? Also I want to know which one would be the best for my situation Basically what are the difference between them or you can say their pros and cons??? – Vikas Prasad Oct 21 '13 at 06:03
  • can you please just tell me that by using mqtt and not xmpp is it possible to enable voice and video call facility in a native mobile app??? if no then which protocol do facebook use for the same??? Thanks a million...:) Please help!!! – Vikas Prasad Oct 21 '13 at 17:42
  • This answer should be putted in the comments. – Anis LOUNIS aka AnixPasBesoin Dec 19 '15 at 12:46