0
我正在使用azure sdk和其他客戶端將事件發送到IoT中心。在主事件消息中向IoT Hub添加額外屬性時消息負載發生變化
我不得不使用物聯網集線器路由功能,因此我加入除了屬性主要有效載荷發送到IotHub
案例1日前:發送數據使用Azure的SDK
事件模型
RealTimeMachineData realTimeData = new RealTimeMachineData();
realTimeData.Date = DateTime.UtcNow;
realTimeData.MachineCode = "M1";
當我在Service bus ex中看到此消息時plorer我這個樣子
{
"MachineCode": "M1",
"Date": "2017-08-27T10:05:22.7063498Z",
}
案例2:當我通過REST API
HttpClient client = new HttpClient();
string deviceId = "DemoDevice";
string baseUrl = "https://******.azure-devices.net/devices/" + deviceId + "/messages/events?api-version=2016-02-03";
client.BaseAddress = new Uri(baseUrl);
var sas = @"SharedAccessSignature sr=********";
client.DefaultRequestHeaders.Add("Authorization", sas);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var message1 = new Microsoft.Azure.Devices.Client.Message(Encoding.ASCII.GetBytes(realTimeData.ToString()));
message1.Properties.Add("Source", "AiR");
HttpResponseMessage response = client.PostAsJsonAsync(baseUrl, message1).Result;
調用此方法發送事件後做同樣的事情,當我檢查的消息服務總線資源管理器看起來像
我不得不使用流分析這一做法,並通過REST客戶端發送小號的時候,因爲有效載荷越來越不同o面臨很多問題。
我做錯了什麼,或者在通過Rest客戶端發送過程中有什麼不同嗎?
這是行不通的。 – JARVIS
它應該是工作,我已經在我的物聯網集線器上進行了測試。您的實施對於有效負載和標題不正確。請注意,IoT Hub路由是Source =「AiR」 –