使用 MQTT 连接到 Azure IoT 中心
Connect to Azure IoT Hub using MQTT
我正在尝试使用 MQTT 通过以下方法直接连接到 Azure IoT 中心:
我正在为 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"
我正在尝试使用 MQTT 通过以下方法直接连接到 Azure IoT 中心:
我正在为 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"