使用 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);
似乎在做同样的事情。
为什么我要用一个而不是另一个?我可以通过任何一种方式接收消息。
是的,最终他们得到了相同的结果。
Create(...) 方法调用 IotHubConnectionStringBuilder.Create(...),然后调用 CreateFromConnectionString(...) 并说明它是根据各个参数创建 DeviceClient 的方法。
因此,我相信 Create 是某种获取参数的包装器,然后根据各个参数创建连接字符串并将其传递给 CreateFromConnectionString(...)。因此,我认为主要区别在于性能。
我有一个控制台应用程序,它通过 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);
似乎在做同样的事情。
为什么我要用一个而不是另一个?我可以通过任何一种方式接收消息。
是的,最终他们得到了相同的结果。
Create(...) 方法调用 IotHubConnectionStringBuilder.Create(...),然后调用 CreateFromConnectionString(...) 并说明它是根据各个参数创建 DeviceClient 的方法。
因此,我相信 Create 是某种获取参数的包装器,然后根据各个参数创建连接字符串并将其传递给 CreateFromConnectionString(...)。因此,我认为主要区别在于性能。