Quelles sont les principales différences entre MQTT et Web Sockets?
Lorsque vous utilisez l'IoT pour la domotique - contrôlez et surveillez l'accès sur différents appareils, lequel d'entre eux doit être utilisé lorsque l'accessibilité basée sur l'API Rest et sur le navigateur est requise.
J'utilise Java (bibliothèque Pi4J) sur un Raspberry Pi 2 B +.
J'ai une configuration de plusieurs capteurs comme la lumière et l'obscurité, l'humidité, le PID, etc.
J'ai également un serveur cloud où je peux envoyer les données si nécessaire.
communication
monitoring
mqtt
Shakti Phartiyal
la source
la source
Réponses:
La question posée ici est un peu trompeuse, car en réalité ces protocoles ne peuvent pas du tout être comparés ensemble. Ils sont comme TCP et IP, des couches les unes au-dessus des autres. [1]
Websockets est un protocole de bas niveau pour fournir des choses que son http RESTful «concurrent» qui est au même niveau ne fournit pas: un canal toujours ouvert sans besoin d'ouvrir et de fermer à chaque demande. [2]
MQTT fournit un moyen léger de publier ou de souscrire des données. La confusion peut être que ces abonnements sont une sorte de canaux, mais c'est un type de canal différent. Pour établir une connexion ouverte constante dans MQTT, vous avez besoin de Websockets ET MQTT en même temps.
Dans l'IoT, ainsi que dans toute conception, vous devez sélectionner si vous avez besoin d'un flux ou non (WebSockets vs RESTful) et à propos de MQTT, vous devrez peut-être vous demander si vous souhaitez un mécanisme d'abonnement et de publication sur votre application.
Dans certaines circonstances, vous pouvez envisager MQTT sur WebSockets, si quelque chose de courant existe. [3]
Réponse à la question:
Vous dites que vous avez une configuration d'un Rasperry Pi et plusieurs capteurs autour de l'endroit. Si les capteurs sont loin de Rasperry avec leurs propres contrôleurs, vous pouvez utiliser MQTT pour collecter les données. Pour stocker des données dans le cloud, envoyez les données en HTTP. Dans le cloud, fournissez des données par le repos. [4]
Pour les websockets il n'y a pas besoin, mais si vous le trouvez utile, utilisez-le.
Sources:
[1] https://www.quora.com/What-are-the-pros-and-cons-of-WebSockets-versus-MQTT-as-real-time-web-infrastructure-for-the-Internet-of -Des choses
[2] https://www.pubnub.com/blog/2015-01-05-websockets-vs-rest-api-understanding-the-difference/
[3] /programming/30624897/direct-mqtt-vs-mqtt-over-websocket
[4] http://www.theinternetofthings.eu/antonio-grasso-mqtt-vs-http-what-best-protocol-iot
la source
Ils sont comparables en ce que les deux vous permettent d'avoir une communication en duplex intégral de sorte que le serveur puisse immédiatement transmettre des données au client, sans que le client ne les interroge (comme cela pourrait être le cas avec HTTP).
Cependant, Websockets est conçu pour une simple connexion point à point entre un client et un serveur. MQTT superpose des abstractions supplémentaires à l'envoi de messages de base, afin que plusieurs parties intéressées puissent s'abonner à des messages susceptibles de les intéresser. Les messages peuvent donc être acheminés par «sujet de message» afin que de nombreux clients puissent partager une file d'attente théorique, où un serveur peut choisir d'entendre tous les messages de tous les clients, mais peut également filtrer par sujet.
MQTT a une variété d'autres fonctionnalités utiles, par exemple des messages conservés, tels que les abonnés reçoivent immédiatement le message, et le LWT (Last Will and Testament) qui est un message qui peut être envoyé automatiquement si le client se déconnecte anormalement. En résumé, MQTT est «plus haut dans la pile», offrant des fonctionnalités et des abstractions qu'un simple Websocket ne propose pas.
la source