azure - 使用 MQTT 创建从 Eclipse-ditto 到 Azure IoT 中心的连接
问题描述
我正在尝试使用 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)?
希望我没有错过互联网上的任何其他相关问题或信息。如果是这样,请告诉我在哪里可以找到它。
谢谢
解决方案
同上将“-publisher”附加到传出连接的 ID。
但是,Azure IoT 中心要求连接 ID 与 Azure IoT 中心中配置的设备相同。要使其适用于称为“测试”的设备/连接,您应该执行以下操作:
- 在 Azure IoT 中心创建一个名为“test-publisher”的新传入连接
- 使用以下命令创建同上传出连接:
- 编号:'测试'
- Azure IoT Hub 提供的连接详细信息,包括“test-publisher”
推荐阅读
- c - 初学者,试图读取文件在 ubuntu 中返回一个空指针
- dialogflow-cx - Sys.person 在 DialogFlow CX 中不可用
- mysql - MySQL没有正确下载
- linker - 如果位置计数器在链接描述文件中初始化为太小或太大,则静态可执行段错误
- ipython - 在 Atom 中使用氢的巨大 IPKernelApp 错误
- javascript - 检查firebase中的文档是否存在
- flutter - Flutter Stack Widget:将层的大小绑定到底层的大小
- python - 将答案存储为打印语句,以便稍后在打印语句中使用
- c - 在哪里以及如何替换 ProFTPD 项目的服务器代码?
- excel - 在excel插件中按范围生成图片