#azure-iot-hub #azure-iot-sdk #azure-iot-hub-device-management
#azure-iot-hub #azure-iot-sdk #azure-iot-hub-управление устройствами
Вопрос:
У меня есть следующий запрос маршрутизации, определенный в Azure IoTHub: $body.messageType="Test"
И использование Microsoft.Azure.Devices.Client"
SDK Version="1.28.0"
Вот мой очень простой код на C #.
var device = DeviceClient.CreateFromConnectionString(DeviceConnectionString);
await device.OpenAsync();
var obj = new
{
messageType = "Test"
};
var telemetryJson = JsonConvert.SerializeObject(obj);
var message = new Message(Encoding.UTF8.GetBytes(telemetryJson));
// Set message body type and content encoding.
message.ContentEncoding = "utf-8";
message.ContentType = "application/json";
await device.SendEventAsync(message);
Сообщение доставляется на IoTHub, но маршрутизация не применяется! Есть идеи, почему?
Комментарии:
1. строка запроса маршрутизации в порядке. Не могли бы вы опубликовать фрагмент экрана с подробной информацией о маршруте?
2. кроме того, для целей тестирования добавьте маршрутизацию сообщений телеметрии устройства (true) в большой двоичный объект хранилища. Вы должны увидеть текст сообщения в формате json, такой как { «MessageType»:»Test» }
3. также IoT Hub выдает диагностические журналы для маршрутов, которые могут помочь
Ответ №1:
Не могли бы вы попробовать это с помощью одинарных кавычек, подобных этой $body.messageType='Test'
?
Ответ №2:
Я заметил, что поведение ресурса IoTHub вообще не было нормальным. Начали появляться различные типы сообщений об ошибках, похожие IotHub is not in an Active state
на что угодно.
Удаление и повторное создание ресурса решило проблему.