在 AWS IoT 上使用 mosquitto_pub WITH mosquitto_sub 不起作用

物联网 aws-iot 蚊子
2021-06-09 09:28:28

尝试使用 mosquitto CLI 客户端与 AWS IoT 事物交互时出现的奇怪问题:

  • mosquitto_pub 可以正常工作,因为我可以在 AWS IoT 测试控制台中看到传入消息。
  • mosquitto_sub 可以正常工作,因为我可以接收从 AWS IoT 测试控制台发送的消息。

但是,mosquitto_sub 不接收使用 mosquitto_pub 发送的消息。

出版商:

mosquitto_pub --cert krc-test1.cert.pem --key krc-test1.private.key --cafile root-CA.crt -h (endpoint)-ats.iot.us-east-1.amazonaws.com -t topic_1 -m Hello -i basicPubSub

AWS IoT 测试控制台将收到“Hello”。

订户:

mosquitto_sub --cert krc-test1.cert.pem --key krc-test1.private.key --cafile root-CA.crt -h (endpoint)-ats.iot.us-east-1.amazonaws.com -t topic_1 -v -i basicPubSub -d

将接收从 AWS IoT 测试控制台发送的消息,但不会接收来自上述发布者的消息。相反,订阅者将在消息发送后约 1 秒输出:

Client basicPubSub sending CONNECT
Client basicPubSub received CONNACK (0)
Client basicPubSub sending SUBSCRIBE (Mid: 7, Topic: topic_1, QoS: 0)
Client basicPubSub received SUBACK
Subscribed (mid: 7): 0

任何人都知道可能会发生什么?

注意:为了方便起见,我使用了 clientID 'basicPubSub' 和预先配置的主题 'topic_1',因为它们是在基本策略中预先配置的。

1个回答

您不应为两个 mosquitto 应用程序使用相同的客户端 ID。

客户端 ID 需要是唯一的,因此您必须向策略中添加一个新 ID。