Python mosquitto mqtt经纪人赢得';t向订阅者发送超过20个发布数据包

Python mosquitto mqtt经纪人赢得';t向订阅者发送超过20个发布数据包,python,networking,mqtt,mosquitto,Python,Networking,Mqtt,Mosquitto,我目前正在使用python开发MQTT客户机,现在我可以创建发布和订阅Mosquitto代理的客户机 问题是,不管怎样,mosquitto代理最多只向订户客户端发送20个发布数据包,即使它保持长时间的连接 如何配置MOSQUITO向订户客户端发送20多个发布数据包 莫斯基托日志: 1608918436: Received PUBLISH from publisher (d1, q1, r0, m1, '/OS', ... (3 bytes)) 1608918436: Sending PUBLIS

我目前正在使用python开发MQTT客户机,现在我可以创建发布和订阅Mosquitto代理的客户机

问题是,不管怎样,mosquitto代理最多只向订户客户端发送20个发布数据包,即使它保持长时间的连接

如何配置MOSQUITO向订户客户端发送20多个发布数据包

莫斯基托日志:

1608918436: Received PUBLISH from publisher (d1, q1, r0, m1, '/OS', ... (3 bytes))
1608918436: Sending PUBLISH to subscriber (d0, q1, r0, m17, '/OS', ... (3 bytes))
1608918436: Sending PUBACK to publisher (m1, rc0)
1608918438: Received PUBLISH from publisher (d1, q1, r0, m1, '/OS', ... (3 bytes))
1608918438: Sending PUBLISH to subscriber (d0, q1, r0, m18, '/OS', ... (3 bytes))
1608918438: Sending PUBACK to publisher (m1, rc0)
1608918440: Received PUBLISH from publisher (d1, q1, r0, m1, '/OS', ... (3 bytes))
1608918440: Sending PUBLISH to subscriber (d0, q1, r0, m19, '/OS', ... (3 bytes))
1608918440: Sending PUBACK to publisher (m1, rc0)
1608918442: Received PUBLISH from publisher (d1, q1, r0, m1, '/OS', ... (3 bytes))
1608918442: Sending PUBLISH to subscriber (d0, q1, r0, m20, '/OS', ... (3 bytes))
此时,MOSQUITO代理不会向订阅者发送更多数据包,订阅者客户端发送PINGREQ以保持与代理的连接时的PINGRESP除外

1608918442: Sending PUBACK to publisher (m1, rc0)
1608918442: Received PINGREQ from subscriber
1608918442: Sending PINGRESP to subscriber
1608918444: Received PUBLISH from publisher (d1, q1, r0, m1, '/OS', ... (3 bytes))
1608918444: Sending PUBACK to publisher (m1, rc0)
1608918446: Received PUBLISH from publisher (d1, q1, r0, m1, '/OS', ... (3 bytes))
1608918446: Sending PUBACK to publisher (m1, rc0)
如果真的需要,我很乐意为客户提供代码

稍后编辑:也许值得一提

如果一个主题上有更多订阅者,则无法观察到此行为,代理在任何时候都不停止发送数据包。

通过将mosquitcho.conf文件中的max\u-inflight\u消息修改为0解决了此问题。

通过将mosquitto.conf文件。

20条消息听起来像是您正在达到最大机上消息数(最大未确认消息数)


这些消息是QOS 1,因此您的客户端需要确认它们。

20条消息听起来像是您达到了机上消息的最大数量(未确认消息的最大数量)


这些消息是QOS 1,因此您的客户端需要确认它们。

这意味着我没有正确阅读文档,因此,确保我理解了,订阅者需要在收到PUBLISH后发送PUBACK?这确实是正确的。修改我的订阅服务器客户端,在收到发布后发送PUBACK,“问题”消失了。这意味着我没有正确阅读文档,因此,确保我理解,订阅服务器需要在收到发布后发送PUBACK?这确实是正确的。在收到PUBLISH后,将我的订户客户端修改为发送PUBACK,“问题”消失。这不是正确的解决方案,您需要修复邮件确认。这不是正确的解决方案,您需要修复邮件确认