微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MQTT为什么承认这么慢?

如何解决MQTT为什么承认这么慢?

我编写了一个MQTT客户端程序,该程序在计算机(计算机1)上运行。 MQTT客户端程序以QoS = 1连接到MQTT代理,并定期将数据发布到代理。我使用Mosquito实用程序从另一台计算机(计算机2)订阅broker(Qos = 1)。我发现发布到broker的数据将延迟大约3秒钟交付给发布者。延迟的时间太长。我检查了代码,发现3秒钟的延迟时间来自read_packet(),它是从broker中回读确认的。为什么会有这么长的延迟时间?我该如何解决?经纪人(MQTT服务器)由我的同事管理。如果是中间人,我可以要求他们提供帮助。但是我需要知道什么可能是麻烦源,以便与他们进行核对。

我可以通过在计算机1上查看来自MQTT客户端程序的调试消息来确认从broker回读确认时发生的延迟。对于Qos = 1,客户端必须在发送(发布)数据包后回读确认。我发现在发送数据包和回读确认之间有3秒的延迟时间。当然,我还发现了Mosquito_sub实用程序的显示延迟。

解决方法

假设您附近的网络通讯很频繁,并且事实证明您已经用mosquitto_sub重新创建了问题,那么这表明MQTT代理是问题的根源。

在不知道您正在使用什么代理以及加载了多少代理的情况下,很难说更多,但是您应该查看代理日志。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。