Двойники устройств Azure - HTTP или MQTT

Я использую пакет SDK для устройств Azure IoT для C, чтобы создать приложение устройства, которое взаимодействует с порталом Azure IoT и обновляет своего двойника устройства.

Использует ли двойник устройства для связи протокол HTTP или MQTT?

Я думал, что это MQTT. Однако я получаю коды состояния ответа HTTP, когда обновляю сообщаемые свойства двойника устройства.

Когда я создаю обработчик устройства в своем коде, я указываю MQTT в качестве транспортного протокола, поэтому я запутался.

Фрагмент кода для создания обработчика устройства:

IOTHUB_CLIENT_TRANSPORT_PROVIDER iothub_transport = MQTT_Protocol;
device_handler = IoTHubDeviceClient_CreateFromDeviceAuth(user_ctx.iothub_uri, user_ctx.device_id, iothub_transport 

Фрагмент кода для обновления сообщаемых свойств:

char* reportedProperties = SerializeEnergyInfoToJson(&info);// my own function which returns a JSON char* created from my data.
(void)IoTHubDeviceClient_SendReportedState(device_handler, (const unsigned char*)reportedProperties, strlen(reportedProperties), ReportedStateCallback, NULL);

person Engineer999    schedule 11.02.2021    source источник
comment
Можете ли вы включить фрагмент кода, который вы используете для обновления указанного свойства, чтобы мы правильно понимали, что вы делаете?   -  person Stefan Wick MSFT    schedule 11.02.2021
comment
@StefanWickMSFT Спасибо за ответ. Я обновил свой вопрос, добавив фрагмент для обновления сообщаемых свойств.   -  person Engineer999    schedule 11.02.2021


Ответы (1)


Для отчетов об обновлениях свойств через API-интерфейсы DeviceClient будет использоваться тот же протокол, который вы указали при создании DeviceClient. Итак, в вашем случае он будет использовать MQTT.

Если вы хотите узнать больше, как это работает под прикрытием, напрямую используя MQTT, вы можете прочитать здесь: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support#update-device-twins-report-properties

person Stefan Wick MSFT    schedule 11.02.2021
comment
Спасибо за ответ, но я до сих пор не понимаю, почему получаю ответ HTTP. - person Engineer999; 12.02.2021
comment
Что вы имеете в виду под HTTP-ответом? Коды состояния задокументированы здесь: docs.microsoft.com/en-us/azure/iot-hub/ Вы получаете что-то другое? - person Stefan Wick MSFT; 16.02.2021