Die Fragestellung hier ist etwas irreführend, da diese Protokolle eigentlich gar nicht miteinander verglichen werden können. Sie sind wie TCP und IP, Schichten übereinander. [1]
Websockets ist ein Low-Level-Protokoll, das Dinge bereitstellt, die der RESTful-HTTP seines Konkurrenten auf derselben Ebene nicht bereitstellt: ein immer offener Kanal, ohne dass bei jeder Anforderung ein Öffnen und Schließen erforderlich ist. [2]
MQTT bietet eine einfache Möglichkeit zum Veröffentlichen oder Abonnieren von Daten. Die Verwirrung kann sein, dass diese Abonnements eine Art von Kanälen sind, aber das ist eine andere Art von Kanal. Um eine konstant offene Verbindung in MQTT herzustellen, benötigen Sie gleichzeitig Websockets UND MQTT.
In IoT und in jedem Design müssen Sie auswählen, ob Sie einen Stream benötigen oder nicht (WebSockets vs RESTful). In Bezug auf MQTT müssen Sie möglicherweise überlegen, ob Sie ein Abonnement und einen Veröffentlichungsmechanismus für Ihre App wünschen.
Unter bestimmten Umständen können Sie MQTT über WebSockets in Betracht ziehen, wenn eine gemeinsame Sache vorliegt. [3]
Antwort auf die Frage:
Sie sagen, Sie haben einen Rasperry Pi und mehrere Sensoren in der Nähe. Wenn die Sensoren mit ihren eigenen Controllern von Rasperry weit entfernt sind, können Sie MQTT zum Erfassen der Daten verwenden. Senden Sie die Daten zum Speichern in der Cloud über HTTP. In der Cloud Daten durch Ruhe liefern. [4]
Für Websockets besteht keine Notwendigkeit, aber wenn Sie es nützlich finden, verwenden Sie es.
Quellen:
[1] https://www.quora.com -Dinge
[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