环境
- EMQX 版本:4.47
- 操作系统版本:centos8
设备连接断开了,依然显示已连接,状态不正确
下面几种情况会导致 Dashboard 仍然展示下线的客户端:
设备掉线了但服务端没有收到 DISCONNECT,也没有收到 TCP 的 FIN 报文。FIN 收不到往往是因为网络问题。需要在 Keepalive 时间超时之后才会移除此连接的会话。
你的设备如果是持久化的话(clean_session = true, 或者 session-expiry-interval 不是 0),即使网路断开也不会清除会话。
你的会话过期时间是 0,所以应该是前面说的第一种情况。Keepalive = 30s,所以大概会在一分钟之内掉线。
如果超时没有掉线,那可能是出问题卡住了,你可以尝试手动踢下去。常见的原因是:
要确定具体的原因,可以使用 emqx remote_console 进入 Erlang shell,然后使用 observer_cli:start(). 命令看当前 Erlang 进程的状态。
emqx remote_console 这个不懂啊