是否应该为 IoT Hub DeviceClient 设置 TransportType?

问题描述 投票:0回答:1

我正在尝试通过 DeviceClient 类向 Azure IoT 设备发送消息。

连接设置与此示例类似:https://github.com/tamhinsf/SimpleAzureIoTCerts/blob/master/SimpleAzureIoTCerts/Program.cs

// works for me with SharedKey
DeviceClient.CreateFromConnectionString(...);
// or this also works:
var authWithPrimaryPfx = new DeviceAuthenticationWithX509Certificate(deviceId, cert);
return DeviceClient.Create(hostName, authWithPrimaryPfx);

我在示例中还看到,它在创建 DeviceClient 时设置

Microsoft.Azure.Devices.Client.TransportType

这是必要的、推荐的吗?IoT 中心接口中是否有任何设置来控制设备支持哪些协议?

旁注:我也问这个问题,因为虽然到

mylitlitesthub.azure-devices.net
的连接确实有效,但初始连接速度非常慢。发送第一条消息需要超过 20 秒。

c# azure-iot-hub azure-iot-sdk
1个回答
0
投票

IoT 中心设备客户端类允许您创建设备客户端实例,而无需显式设置传输类型重载。使用此方法创建的设备客户端通过

AMQP
协议进行通信。以下是设备客户端类支持的传输类型选项列表。

IoT Hub 支持所有这些

Device-to-cloud
消息协议。特定场景(例如读取设备孪生的属性)需要使用
MQTT
AMQP

IoT Hub无法确定设备支持的协议。这是由制造商考虑到设备的限制而确定的。一些低资源设备(例如小于 1MB RAM)可能仅支持 MQTT。请参阅以下资源以获取有关不同场景使用哪种协议的更多信息。

很难判断是什么原因导致初始连接延迟。这可能是由于网络延迟或建立协议协商的延迟造成的。根据您正在测试的设备及其协议的支持性,尝试测试 MQTT 传输类型,看看是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.