MQTT или REST для связи с облачным устройством - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь сделать проект IoT, в котором узлу необходимо получить некоторые команды из облака.Ранее я сделал это с помощью протокола MQTT.Но, ища другие протоколы в интернете, я нашел REST, который позволяет общаться через HTTP.Однако я видел, что этот протокол больше используется для получения данных (отправка запроса узлу и получение данных от него в ответе).Я очень новичок с этим протоколом.Итак, я хотел бы знать, можно ли также отправлять команды на узел из облака, как в MQTT.

Большое спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Протокол IoT, похожий на REST: CoAP .Если вы думаете об использовании REST в контексте IoT, я рекомендую взглянуть на него.Если ваши узлы всегда подключены / достижимы, ничто не говорит против движения в этом направлении.CoAP - это децентрализованный протокол обслуживания, где каждый узел может общаться с другим узлом.

MQTT - это протокол публикации / подписки с центральным посредником.Таким образом, ваше облако может просто отправлять команды посреднику, и всякий раз, когда узел подключается к посреднику, он будет получать команды.Таким образом, узел не должен быть в сети все время.

0 голосов
/ 05 октября 2018

Протокол HTTP и, следовательно, основан на модели запросов / ответов, и использование его для команд устройств IoT может иметь свои недостатки:

  1. Ваши устройства должны быть доступны через Интернет, и это можетбыть компромиссом в плане безопасности, когда вы можете иметь Устройство с доступом к Интернету с использованием подписок MQTT, но входящие подключения к нему не разрешены.
  2. Вам потребуется несколько механизмов для повторной попытки и обработки автономных устройств в облачном приложении, отправляющемкоманды.

Кроме того, HTTP больше накладных расходов, чем MQTT, учитывая, что MQTT имеет долгоживущие соединения.С HTTP вы будете тратить больше энергии на подключение и отключение, также сетевые пакеты будут больше, чем MQTT.

Можно ли использовать REST / HTTP для отправки команд на устройства? Да .Должны ли вы сделать это? Вероятно, нет, все зависит от ваших реальных требований и возможностей устройства и почему вы хотите заменить MQTT.

...