EMQX5.7.2 开源版本,单节点,4核16G,LINUX centos7.9。
使用系统主题监听客户端上下线时间,同时收到客户端上线和下线通知,有时候上线通知在前,下线通知在后。现实是设备连接上服务器的。
为什么会出现这种情况?监听设备连接和离线状态,最好的方式是什么?
EMQX5.7.2 开源版本,单节点,4核16G,LINUX centos7.9。
使用系统主题监听客户端上下线时间,同时收到客户端上线和下线通知,有时候上线通知在前,下线通知在后。现实是设备连接上服务器的。
为什么会出现这种情况?监听设备连接和离线状态,最好的方式是什么?
建议你直接在 dashboard trace 一下这个客户端,就会发现它应该是断开后,马上又连上来了。如果不是,绝对不会同时发上下线通知的。不然就是重大 bug。
目前就是监听上线主题。
建议把日志时间精度调高一点。
如果是稳定时间段出来的,直接用 tcpdump 也一样能看到的。
遇到过这种情况,跟clean session配置有关,mqtt v3下clean session=false且会话过期时间大于0,那在过期时间内进行重连会出现这种现象,两条通知的差值会在毫秒级。不知道有没有帮到你,可以测试下。
谢谢你,我的问题解决了。