1

我正在尝试使用 MQTT创建从同上Azure IoT 中心的传出连接。我们负责 Ditto,而其他人(对数字孪生实时数据感兴趣)负责 Azure IoT Hub。连接 Azure IoT 中心(在连接微服务中)时出现以下错误:Not authorized to connect (5). 我们还尝试与mosquitto_pub连接,并在省略该-i client-id选项时收到相同的错误。其他一切似乎都很好。

一些额外的信息:

  • 这是目前有效的 mosquitto_pub 命令:
    mosquitto_pub -h [hostname] -p [port] -t [topic] -m "" -u [username] -P [password] --cafile cert.cer -i [deviceName]
  • 我们已经获得了主机名、端口、主题、用户名(这是一个包含斜杠、破折号和相等运算符的长字符串)、密码(也是一个包含空格、百分号和相等运算符的长字符串)和一个证书文件。我已经对用户名和密码进行了 URL 编码,并将它们拼接在连接 url 中,如同上页面 ( https://www.eclipse.org/ditto/connectivity-protocol-bindings-mqtt.html ) 中所述:ssl: //[url-encoded-username]:[url-encoded-password]@[hostname]:[port-number].
  • 我已添加证书,但不再收到证书错误(“无法找到请求目标的有效证书路径”)。

有人对此有经验吗?
也许解决方案是使用另一个协议(例如 amqp)?
希望我没有错过互联网上的任何其他相关问题或信息。如果是这样,请告诉我在哪里可以找到它。

谢谢

4

1 回答 1

2

同上将“-publisher”附加到传出连接的 ID。
但是,Azure IoT 中心要求连接 ID 与 Azure IoT 中心中配置的设备相同。要使其适用于称为“测试”的设备/连接,您应该执行以下操作:

  • 在 Azure IoT 中心创建一个名为“test-publisher”的新传入连接
  • 使用以下命令创建同上传出连接:
    • 编号:'测试'
    • Azure IoT Hub 提供的连接详细信息,包括“test-publisher”
于 2019-07-23T13:57:25.410 回答