使用 IoT 中心实例化 DeviceClient

Instantiate DeviceClient with IoT Hub

我有一个控制台应用程序,它通过 Azure IoT 中心将命令直接发送到 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);

似乎在做同样的事情。

为什么我要用一个而不是另一个?我可以通过任何一种方式接收消息。

是的,最终他们得到了相同的结果。

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

Create(...) 方法调用 IotHubConnectionStringBuilder.Create(...),然后调用 CreateFromConnectionString(...) 并说明它是根据各个参数创建 DeviceClient 的方法。

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