Qt订阅qos2主题,接收消息会断开连接

错误报告

环境

  • EMQX 版本:EMQX5.0
  • 操作系统版本:windows10

重现此问题的步骤

1667969305847

看日志连接关闭的原因是 tcp_closed,也就是对端关闭了连接,建议看下客户端的处理逻辑。

客户端就是正常接收消息,没有特别的逻辑判断,Qos0和QoS1的时候都是正常的,只有当服务质量为2时,收到消息就会断开连接,不知道为什么会关闭socket

那个警告是什么意思,没有查到,什么原因可能造成socket自动关闭

看日志的话 EMQX 在收到客户端回复的 PUBCOMP 报文前连接就被断开了,你可以从这个角度去排查一下,客户端收到 PUBREL 报文后发生了什么。


客户端对PUBREL报文处理逻辑是这样,在MQTT3.1.1接收到PUBREL报文功能正常,但是在MQTT5.0接收到PUBREL报文,会报错Received 2 byte message with invalid remaining length。请问这个判断逻辑对不对?