Могу ли я отправить сообщение группе устройств Azure IoT Hub, подключенных через MQTT WebSocket?

Цель: отправлять сообщения группе устройств Azure IoT Hub, подключенных через MQTT WebSocket.

Первоначальная идея: попросите группу устройств Центра Интернета вещей (группа X) подписаться на сообщения с темой X.

Проблема:

На общайтесь со своим центром Интернета вещей с помощью MQTT protocol docs, я не вижу возможности подписать устройство на дополнительные темы. Я вижу только примеры подписки на конечную точку конкретного устройства devices/{device_id}/messages/devicebound/#.

Далее на странице говорится: «Центр Интернета вещей не является брокером обмена сообщениями общего назначения, он поддерживает только задокументированные названия тем и фильтры тем». Я думаю, что эти темы

  • devices/{device_id}/messages/devicebound/
  • devices/{device_id}/messages/devicebound/#

Мое заключение: я не могу иметь группу устройств Центра Интернета вещей (группа X), подписывающуюся на сообщения с темой X.

Вопросы:

  1. Мой вывод верен?
  2. Если мой вывод верен, есть ли другой способ отправки сообщений группе устройств Azure IoT Hub, подключенных через MQTT WebSocket?

person mrh042    schedule 20.04.2017    source источник


Ответы (1)


Ваш вывод правильный. Центр Интернета вещей Azure не является брокером MQTT как таковой. Если вы хотите отправлять сообщения группе устройств, подключенных к Azure IoT Hub (независимо от протокола, к которому они подключены), вам необходимо изучить один из Функции устройства Cloud 2 Центра Интернета вещей. В зависимости от вашего сценария вы можете использовать одно из следующего: сообщения устройства Cloud 2, двойники или методы. IoT Hub предоставляет API-интерфейсы на внутренней стороне (легко используемые с пакетами SDK Service Client), позволяя использовать любой из них.

Сообщения C2D используются для отправки необработанных данных на устройства, что означает, что вы реализуете свой собственный «протокол» между облаком и устройством. Сообщения C2D также сохраняются в облаке, поскольку IoT Hub будет хранить их (в течение определенного времени, определенного в настройках), если устройство не подключено.

Device Twins позволяет синхронизировать конфигурацию устройства с облаком и позволяет выполнять пакетные операции на устройствах (конечно, вы хотите изучить его поближе).

Device Direct Methods позволяет вызывать функцию, запущенную на устройстве из облака, и, как и Twins, поддерживает пакетные операции.

person Olivier Bloch    schedule 20.04.2017
comment
Есть ли какой-либо план превратить Azure IoT Hub в брокер обмена сообщениями MQTT pub-sub общего назначения? У нас есть полностью бессерверные архитектуры в AWS (с использованием AWS IoT Gateway в качестве брокера MQTT), и мы пытаемся выполнить репликацию в Azure. - person mrh042; 21.04.2017