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