乐鑫技术交流
直播中

陈文博

8年用户 913经验值
擅长:测量仪表
私信 关注
[问答]

mqtt keepalive计时器不会触发离线事件的原因?

我认为 mqtt clinet keep alive timer 有一个错误。
代码:全选m = mqtt.Client(\"ESP\"..node.chipid(), 120, \"user\", \"password\")
m:lwt(PUB_TOPIC, \"offline\", 0, 0)
m:on(\"connect\", function(conn) print(\"mqtt_connected\") end)
m:on(\"offline\", function(conn) print(\"offline\") end)
m:on(\"message\", function(conn, topic, data) receive_data(data, topic) end)

正如您在第一行看到的那样,我正在创建一个保持活动时间为 120 秒的客户端,因此如果客户端失去互联网连接超过 120 秒,它应该启动 m:on(\"offline\"... 事件。看起来它需要更多时间(大约 14-15 分钟才能启动离线事件)。
这是一个错误吗?还是我的代码有问题?我尝试将 120 秒更改为 0,1,10,60 秒,但始终响应相同,离线事件在 13-16 分钟引发。

更多回帖

发帖
×
20
完善资料,
赚取积分