1

我有一个控制台应用程序,它通过 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);

似乎做同样的事情。

为什么我要使用其中一个?无论哪种方式,我都可以接收消息。

4

1 回答 1

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 是某种获取参数的包装器,然后从各个参数创建连接字符串并将其传递给 CreateFromConnectionString(...)。因此,我认为主要区别在于性能。

于 2016-04-19T18:52:27.883 回答