客户端连线原因报tcp_closed疑问

环境信息

  • EMQ X 版本:4.3.7
  • 操作系统及版本:centos 8
  • 其他

问题描述

客户端离线原因报tcp_closed,这个tcp_closed和图1文档里closed原因是否是同一个?
据悉tcp_closed原因是由于网络的的原因,设备在凌晨0:00-5:00这个时间段发生tcp_closed离线概率较高,排查这个原因从客户端,4G信号,服务端以及负载均衡哪方面入手,能否给出建议,非常感谢!!!


这个是没有认证的设备在链接,被拒绝了,认证信息不全导致的被踢。

看下你自己的设备,有没有受影响,如果自己的设备业务都正常,可以无视掉这一部分的异常设备

设备之前是一直和emqx服务器连接着,只是断开连接时的原因是tcp_closed,不应该是未认证设备,如果是认证被拒绝原因应该是not_authorized吧?

被踢下线的?那就检查一下心跳的业务是不是完整。并且看下运营商策略,有的运营商会切断不活跃的TCP链接,看下心跳周期是不是超过了运营商策略的周期

我们的心跳时间是30min,但是每60s就有一次数据上报,发生tcp_closed是在上报完数据的60s内的,可以排除是心跳的原因
针对离线原因tcp_closed,是否可以理解为,如果运营商网络不稳定,就会导致客户端因为tcp_closed断开连接,我们看过设备的重连后的IP地址,断开前的IP和后面重连之后IP发生了变化

你用的是自己买的手机卡,还是运营商提供的物联网专用卡?这个需要问一下运营商了,看下他们的网络、浮动IP策略。

如果运营商的网络策略不好搞定,可以在设备端做好设备自动重连的策略