Azure IoT Hub: обмен сообщениями между облаками и устройствами с использованием MQTT и SDK - PullRequest
0 голосов
/ 14 ноября 2018

У Microsoft есть собственный SDK для взаимодействия с IoT Hub (Microsoft.Azure.Devices). Он имеет клиент под названием ServiceClient, который, как я понимаю, является клиентом, который вы должны использовать при отправке сообщений с вашего сервера на устройство через IoT-хаб..

При инициализации ServiceClient, как показано ниже, единственными поддерживаемыми типами транспорта являются Amqp и Amqp_websockets_only.Мои устройства поддерживают только MQTT.Как мне поступить?

public async Task SendMessage() { var serviceClient = ServiceClient.CreateFromConnectionString("", TransportType.Amqp); var commandMessage = new Message(Encoding.ASCII.GetBytes("Cloud to device message.")); await serviceClient.SendAsync("myFirstDevice", commandMessage); }

Согласно c2d поддерживаются "все протоколы".

Я прочитал эта документация , но она только документирует устройство в облако, а не облако в устройство.

Глядя на документацию SDK , в нем перечислены только AMQP для ключевых функций устройства-to-to-cloud

1 Ответ

0 голосов
/ 14 ноября 2018

Для обмена сообщениями между устройствами устройство может использовать протоколы MQTT, MQTT-WS, AMQP, AMQP-WS или HTTP. См. Основные функции SDK устройства IoT Hub . Устройство связывается с IoT Hub для d2c и c2d с помощью SDK устройства Microsoft Azure IoT для .NET . Обратите внимание, что существуют также SDK для устройств, доступные для Java, Node, Python и C.

Если у вас есть внутреннее приложение, которому нужно отправить сообщение c2d на устройство, тогда это внутреннее приложение должно использовать один из SDK службы Azure IoT, например SDK службы Microsoft Azure IoT для C # для подключения к концентратору IoT и отправки сообщения c2d. Внутреннее приложение должно использовать AMQP или AMQP-WS.

Протокол, используемый устройством для подключения к IoT Hub, не зависит от протокола, используемого внутренним приложением для подключения к IoT Hub. Например, внутреннее приложение может подключиться к концентратору IoT с помощью AMQP, чтобы отправить сообщение c2d на устройство, подключенное к концентратору с помощью MQTT.

...