Direct MQTT vs MQTT sur WebSocket
Quels sont les mérites de MQTT over WebSocket<!-Par rapport au MQTT direct?
j'envisage d'utiliser MQTT dans mon projet et donc je veux savoir pourquoi certaines personnes choisissent MQTT plutôt que WebSocket au lieu de MQTT direct.
7 réponses
vous ne devriez avoir besoin d'exécuter MQTT sur des websockets que si vous avez l'intention de publier/vous abonner à des messages directement à partir de webapps (en page).
fondamentalement, je fonctionnerais MQTT pur pour tout et n'ajouterais les websockets que si vous en avez réellement besoin.
pour toutes les langues du navigateur none, les bibliothèques clientes de MQTT n'utilisent que le langage natif MQTT. Pour Javascript il y a à la fois une bibliothèque MQTT pure et la bibliothèque Paho in page qui utilise des websockets.
Modifier: Pare tunnelling use case est une raison valable pour utiliser MQTT sur les websockets et depuis la rédaction de cette réponse, les bibliothèques clientes Web/JavaScript none ont ajouté le support
MQTT over websockets est parfait si jamais une certaine page web est le client MQTT d'envoi ou de réception.
un bon résumé des capacités de MQTT sur les websockets peut être trouvé ici.
deux raisons principales pour utiliser MQTT sur les Websockets (ce qui signifie effectivement passer par HTTP/HTTPS):
- applications Web (ceux exécutant dans un navigateur (par exemple, écrit en JavaScript)
- toutes les autres applications qui ne veulent pas utiliser le port 1883/8883 et qui veulent passer par HTTP / HTTPS à la place - cela pourrait être de sorte qu'il y ait moins de chance d'être bloqué par un pare-feu (par exemple dans un réseau d'entreprise), car la plupart des pare-feu laisseront le trafic HTTP
Si vous n'avez pas besoin ou vous soucier de ce qui précède, l'utilisation de "direct" MQTT:
- il est plus efficace
- il y a plus de bibliothèques clientes pour différentes langues qui fonctionnent avec "direct" MQTT
MQTT est un protocole qui supporte ce qui suit:
- Fournit publier/souscrire mécanisme
- Politique sur la qualité du Service
- avoir un minimum de frais généraux dans la communication
- spécialement conçu pour les canaux de communication à bande étroite et
dispositifs de contraintes.
selon l'appareil il y a une implémentation disponible.
navigateur: il utilise des websockets. Websocket fournit des navigateurs avec la capacité d'établir une communication duplex complète. Il existe une bibliothèque Javascript pour implémenter la fonctionnalité MQTT, voir Eclipse PAHO Client JavaScript
Android: leur est une bibliothèque client MQTT écrite en Java pour le développement d'applications sur Android. Voir Eclipse Ops Android
Donc, cela dépend de l'appareil qui va utiliser cette fonctionnalité. Pour les normes et spécifications, veuillez visiter MQTT Version 3.1.1
en Espérant que cela aidera.
Cheers !
MQTT sur les sockets web est également utile si l'application tourne derrière un pare-feu qui ne permet que le trafic 443 et 80. Et, vous n'avez aucun contrôle sur les politiques de pare-feu.
avec MQTT over websockets chaque navigateur peut être un périphérique MQTT.
en raison du modèle publier/s'abonner de MQTT, vous obtenez une poussée en temps réel à votre navigateur quand un événement – littéralement n'importe où dans le monde – se produit, aussi longtemps que vous vous abonnez au sujet correct.
dans le cas de MQTT sur les WebSockets, la connexion websockets forme un tuyau extérieur pour le protocole MQTT. Le serveur / courtier place le paquet MQTT dans un paquet websockets et l'envoie au client/serveur. Le client / serveur décompose le paquet MQTT à partir du paquet websockets et le traite ensuite comme un paquet MQTT normal.
de plus, il a une grande influence sur l'internet des objets. Veuillez lire la documentation suivante pour plus de détails.
MQTT Broker:
la contrepartie du client MQTT est le courtier MQTT. Le courtier est au cœur de tout publier/souscrire protocole. Selon la mise en œuvre, un courtier peut gérer jusqu'à des milliers de clients MQTT connectés simultanément.
MQTT Client: Quand on parle d'un client, on parle presque toujours d'un client MQTT. Les éditeurs et les abonnés sont des clients de MQTT. L'éditeur et l'abonné réfèrent à savoir si le client publie actuellement des messages ou s'abonne à des messages (la fonctionnalité publier et s'abonner peut également être implémentée dans le même client MQTT).
WebSocket: Nous avons appris dans le MQTT Essentials que le MQTT est idéal pour les appareils limités et les réseaux peu fiables. Il est également parfait pour envoyer des messages avec un plafond très bas. Il serait tout à fait agréable d'envoyer et de recevoir des messages MQTT directement dans le navigateur d'un téléphone mobile ou en général. C'est possible par MQTT sur WebSockets.
vous pouvez utiliser un protocole tiers. PAHO, EMQTT, VerneMQ.