拔网线断开后,重新插回去,重连失败

环境信息

  • EMQX 版本:
  • 操作系统及版本: windows
  • 其他 嵌入式是用的rtthread,其中自带的mqtt模块

问题描述

通过拔网线模拟断开连接,再插回去的时候,发现重连失败,过了keepalive的时间后,才能重连成功。而这期间,通过18083的网页看到该client依然处于连接状态。
请问是不是tcp检查连接状态有问题,导致重连失败了?但是我试过同一个clientId,多个客户端的话,是可以互相争抢的,虽然每次只能连接一次,但是不会出现这种连续重连失败。
这问题怎么解决?
看某个资料,说可以通过设置不用keepalive,请问有依据吗?

配置文件及日志

嵌入式中,设置了keepalive时间是30s,并启用了自动重连。

keepalive是心跳周期,不是重连的参数。
设备的TCP链接是否断开,何以通过keepalive缩短来尽快检查出来。
心跳周期没有收到设备的心跳包,就会判定为离线。

那重连失败是什么造成的啊?我以为是服务器端的tcp连接状态阻塞了重连。
我记得这种状态,连接数会因为客户端重试重连,而一直在涨。但是就是重连失败。

重连失败有错误日志吗?

没有,下次复现的时候我保存下吧,可能是w5500的原因