使用 MQTT 连接到 Azure IoT 中心

Connect to Azure IoT Hub using MQTT

我正在尝试使用 MQTT 通过以下方法直接连接到 Azure IoT 中心:

https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support#using-the-mqtt-protocol-directly-as-a-device

我正在为 windows 使用 MQTT 资源管理器:https://mqtt-explorer.com/ 我输入以下详细信息。我的 ioTHub 称为 IoTHub,我的设备称为设备,因此根据文档:

协议:mqtt:// 主机:iothub.azure-devices.net/?api-version=2018-06-3430 端口:8883 验证证书:关闭 加密:关闭 用户名:iothub.azure-devices.net/device/?api-version=2018-06-30 密码:SharedAccessSignature sr=iothub.azure-devices.net&sig=XXXXXXXXXXXXXXXXXXXredactedXXXXXXXXXXXXXXXXXXXX&se=1642603375&skn=iothubowner

我的位置没有端口被阻止。连接失败并显示与服务器断开连接。 如果我尝试使用 TLS 加密,它会显示未授权。

如何使用 MQTT 访问 IoTHub?

你走对了! docs

中缺少一个小细节

引用:

For the ClientId field, use the deviceId.

可以使用高级设置来设置客户端 ID,如下面的两个屏幕截图所示:

至于 TLS 加密,它是必需的。打开它,您应该可以连接。

编辑: 正如您在评论中提到的,连接字符串也是错误的。您需要设备的共享访问签名。生成一个的简单方法是使用 az cli。当您 运行 下面的命令时,您提供设备的连接字符串(您可以从门户网站获取),它将为您创建共享访问签名。

az iot hub generate-sas-token --connection-string "HostName=iot-Hub.azure-devices.net;DeviceId=deviceId;SharedAccessKey=foo"