由于系统确认,Mosquitto 订阅了来自 mosquitto_pub 的错过消息
Mosquitto subscribe missed message from mosquitto_pub due to system acknowlegement
我有 2 个代理,分别是 agentA
和 agentB
,A 正在尝试发布到 B 的广播频道。
关于主题 agentB/broadcast
运行 mosquitto_sub
,我不断收到以下 return 消息:
Client agentB sending CONNECT
Client agentB received CONNACK
Client agentB sending SUBSCRIBE (Mid: 1, Topic: dispatcher/broadcast, QoS: 2)
Client agentB received SUBACK
Subscribed (mid: 1): 2
Client agentB sending CONNECT
Client agentB received CONNACK
Client agentB sending SUBSCRIBE (Mid: 2, Topic: dispatcher/broadcast, QoS: 2)
Client agentB received SUBACK
Subscribed (mid: 2): 2
Client agentB sending CONNECT
Client agentB received CONNACK
Client agentB sending SUBSCRIBE (Mid: 3, Topic: dispatcher/broadcast, QoS: 2)
Client agentB received SUBACK
Subscribed (mid: 3): 2
这有时会使 mosquitto_pub
"miss-fired",意味着如果我点击系统推送连接消息的 window,我的消息将不会发布。
有什么解决办法吗?
谢谢。
编辑:订阅命令
mosquitto_sub -h localhost -p 8883 -v -t agentB/broadcast --cafile /etc/mosquitto/ca_certificates/testing.crt -i agentA -d --cert /usr/share/agentA/config.crt --key /usr/share/agentA/config.key
我找到了根本原因。根本原因是自从我的系统启动以来,agentA 和 agentB 已经 运行 在后台。因此,当我手动执行 mosquitto_sub
时,它将继续创建与该 agentB/broadcast
主题的新连接并关闭旧连接。如果您将 mqtt 作为服务,可以从 journalctl -fu mqtt
检查。
我有 2 个代理,分别是 agentA
和 agentB
,A 正在尝试发布到 B 的广播频道。
关于主题 agentB/broadcast
运行 mosquitto_sub
,我不断收到以下 return 消息:
Client agentB sending CONNECT
Client agentB received CONNACK
Client agentB sending SUBSCRIBE (Mid: 1, Topic: dispatcher/broadcast, QoS: 2)
Client agentB received SUBACK
Subscribed (mid: 1): 2
Client agentB sending CONNECT
Client agentB received CONNACK
Client agentB sending SUBSCRIBE (Mid: 2, Topic: dispatcher/broadcast, QoS: 2)
Client agentB received SUBACK
Subscribed (mid: 2): 2
Client agentB sending CONNECT
Client agentB received CONNACK
Client agentB sending SUBSCRIBE (Mid: 3, Topic: dispatcher/broadcast, QoS: 2)
Client agentB received SUBACK
Subscribed (mid: 3): 2
这有时会使 mosquitto_pub
"miss-fired",意味着如果我点击系统推送连接消息的 window,我的消息将不会发布。
有什么解决办法吗? 谢谢。
编辑:订阅命令
mosquitto_sub -h localhost -p 8883 -v -t agentB/broadcast --cafile /etc/mosquitto/ca_certificates/testing.crt -i agentA -d --cert /usr/share/agentA/config.crt --key /usr/share/agentA/config.key
我找到了根本原因。根本原因是自从我的系统启动以来,agentA 和 agentB 已经 运行 在后台。因此,当我手动执行 mosquitto_sub
时,它将继续创建与该 agentB/broadcast
主题的新连接并关闭旧连接。如果您将 mqtt 作为服务,可以从 journalctl -fu mqtt
检查。