MQTT vs XMPP Que dois-je choisir?

Vue d'Ensemble

J'envoie des messages entre un client (téléphone Android) et un serveur (Serveur Windows). En utilisant une connexion persistante sur TCP, quel protocole serait la meilleure solution. Je regarde les performances, l'évolutivité, la taille des messages et la durée de vie de la batterie. Les messages doivent arriver à destination dans l'ordre et ne peuvent pas être des doublons.

MQTT

Cela semble être la meilleure solution, mais il semble y avoir peu exemples de grande implémentation avec beaucoup d'utilisateurs. Je ne suis pas sûr si je peux l'intégrer dans le serveur windows, ou si cela devrait être une autre application ou un serveur en cours d'exécution. Enfin, il semble y avoir un manque d'informations à ce sujet en général.

XMPP

Cela semble avoir beaucoup d'implémentation, d'exemples, et même un livre : ). Cependant, le but principal semble être pour les clients de messagerie instantanée et des choses comme Google talk. Est ce que ce sera une solution optimale à la messagerie entre le serveur et le client. Je sais actuellement que XMPP est principalement utilisé dans les architectures client-Serveur-client.

Veuillez me corriger si je me trompe et merci d'avance pour toute orientation.

35
demandé sur Scott 2011-08-20 09:09:28

3 réponses

Cela dépend de ce que vous essayez de faire et du matériel que vous utilisez.

MQTT a un trafic de maintien en vie très faible. XMPP est un protocole IM, et a une surcharge beaucoup, beaucoup plus élevée dans la gestion des messages de présence entre tous les clients.

Si vous avez une petite contrainte d'empreinte mémoire, le fait de gérer L'analyseur XML peut rendre l'utilisation de XMPP impossible.

Gardez à l'esprit que MQTT signifie Message File D'attente Telemetry Transport, c'est-à-dire qu'il s'agit d'un transport XMPP est un protocole de messagerie instantanée qui définit soigneusement tous les formats de message et exige que tous les messages soient en XML.

En plus de tout cela: MQTT est un protocole publish subscribe, XMPP est un protocole de messagerie instantanée qui peut être étendu (en utilisant XEP-0060) pour prendre en charge publish subscribe. Vous devez tenir compte de cela lorsque vous architecte votre système.

Nous trouvons que MQTT est le homme discret. Votre kilométrage pourrait être différent.

Tout dépend ...

Traquer la récente annonce de LinkedIn où ils discutent de leur utilisation de MQTT dans leur application mobile.

Santé Marque

(BTW Andy était légèrement éteint dans sa référence à nous. Nous sommes au Centre for Educational Innovation & Technology (CEIT), L'Université du Queensland, Brisbane, Australie)

52
répondu Mark Schulz 2011-08-20 12:02:28

Je pense qu'en bref, les avantages de MQTT par rapport à XMPP sont:

  • Capacité de débit: moins de frais généraux, plus léger
  • binaire vs texte brut
  • QoS en place (feu-et-oublier, au moins-une fois et exactement-une fois)
  • Pub / Sub en place (XMPP nécessite l'extension XEP - 0060)
  • Pas besoin D'un analyseur XML
9
répondu Teixi 2015-06-25 06:01:44

Je pense que vous corrigez probablement votre évaluation de XMPP en ce sens qu'il s'agit d'un protocole principalement axé sur le chat-il est également assez lourd et utilise XML largement le rendant verbeux. Je sais que les gens de CEIT à L'Uni de Brisbane ont spécifiquement étudié les différences et les utilisations optimales pour les deux protocoles. MQTT est très léger et de faible puissance-il a été utilisé pour les applications de télémétrie et de capteurs depuis plus de 10 ans et a été déployé à très grande échelle par IBM et partenaire. Les gens trouvent maintenant qu'un protocole simple comme celui - ci est idéal pour le développement mobile.

Que cherchez-vous exactement à réaliser? Le mqtt.org site vise à fournir de bons liens vers le contenu. Il y a aussi des canaux IRC et des listes de diffusion à ce sujet. Comment pouvons-nous aider?

5
répondu Andy Piper 2011-08-20 11:15:43