频繁出现设备上下线,下线类型为tcp_closed

错误报告

环境

  • EMQX 版本:5.09
  • 操作系统版本:docker

前期步骤

  1. 建立一个规则,sql为
    SELECT *
    FROM
    “$events/client_connected”,
    “$events/client_disconnected”
    并关联规则到webhook通知
  2. 测试设备上下线正常

问题

有一段时期不断收到设备下线通知(reason=tcp_closed),但查看日志显示设备一直正常上报数据,并且下线发生在上报数据的同一时间点,如图

上报数据之间都会有disconnect,connected成对出现。出现较频繁。请问这种tcp_closed是什么原因引起的?设备,emqx还是网络?

tcp_closed 就是对端设备网络连接断了,只是你的设备又很快重连了。

还有上线事件为什么会连续多次触发,中间没有断线事件

比如客户端没有进行 TCP 四次挥手直接断开连接,服务端是感知不到的,那么在心跳超时前客户端如果重连,就只会产生上线事件而不会有离线时间。