使用IoT Hub实例化DeviceClient

时间:2016-04-19 18:15:05

标签: azure azure-iot-hub

我有一个控制台应用程序,可以通过Azure IoT Hub将命令直接发送到Raspberry Pi。一切正常。

虽然我感到困惑,但是以两种不同的方式(可能更多?)来实例化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 个答案:

答案 0 :(得分:2)

是的,在一天结束时他们会得到相同的结果。

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

Create(...)方法调用IotHubConnectionStringBuilder.Create(...)然后调用CreateFromConnectionString(...),并且描述它是从各个参数创建DeviceClient的方法。

所以,我相信,Create one是获取参数的某种包装器,然后从各个params创建连接字符串并将其传递给CreateFromConnectionString(...)。因此,我认为主要的区别在于性能。