webhook 监听设备上下问题

image

我是两个组集群,通过static方式,再心跳范围内设备断电,然后再次上电,推送消息的时间戳一致,导致我更新设备在线离线状态不对,这是我的日志,应该怎么解决


没有完整的 emqx 日志 。不过我大概能猜个 89 不离 10.
disconnect 事件中的reason = takenover
虽然你的设备断电了,但是连接 emqx 的 tcp 并没有认为断开。这时连接一直假活着,所以出没有发出 disconnect
再次上电后,新连接把假连接挤下线,就会出理时间一样的。reason 为 takenover事件。

https://github.com/emqx/emqx/pull/14869
在 5.8.6 之后,我们在 disconnected 中加入了 connected_at 时间。

  1. connected_at 0
    2.1 先收到 disconnected_at 1 connected_at 0 ,后收到 connected_at 1
    2.2 先收到 connected_at 1 ,后收到 disconnected_at 1 connected_at 0

判断 connected_at 小于之前处理过的最新的 connected_at,就把这一条丢掉。说明已经过时了。关键是要保存每个客户端 latest connected_at。

猜的很对,我现在是5.8.6版本,connected_at 我日志看没有,包含这个版本修复这个问题吗

你再检查一下看看,这个应该不会错的。

这个判断是要在webhook或者exhook或者插件中自己写这个逻辑判断嘛

是的,要自己写,不然没有代码帮判断的。