2016-04-19 119 views
0

我有一個控制檯應用程序,它通過Azure IoT Hub將命令直接發送到Raspberry Pi。它一切正常。用IoT Hub實例化DeviceClient

雖然我很困惑,但在兩種不同的方式(可能更多?)來實例化DeviceClient。

例:

deviceClient = DeviceClient.Create(IOT_HUB_HOST_NAME, AuthenticationMethodFactory 
     .CreateAuthenticationWithRegistrySymmetricKey(IOT_HUB_DEVICE, IOT_DEVICE_KEY), TransportType.Http1); 

deviceClient = DeviceClient.CreateFromConnectionString(IOT_HUB_CONN_STRING); 

似乎做同樣的事情。

爲什麼我會用另一個呢?我可以通過任何方式接收消息。

回答

1

是的,在一天結束時,他們有相同的結果。

https://github.com/Azure/azure-iot-sdks/blob/master/csharp/device/Microsoft.Azure.Devices.Client/DeviceClient.cs

創建(...)方法調用IotHubConnectionStringBuilder.Create(...),那麼CreateFromConnectionString(...),並且具有它是從單個參數來創建DeviceClient該方法的說明。因此,我相信,創建一個是某種包裝獲取參數,然後創建從各個參數的連接字符串,並將其傳遞給CreateFromConnectionString(...)。所以,我認爲主要的區別在於性能。

+0

太棒了,謝謝! –