1 问题描述
在使用EMQX作为MQTT服务器进行QoS2主题发布测试时,发现在发送了100个QoS2主题后,服务器便强制断开了和MQTT客户端的连接,抓取到的报文如下:
1:MQTT客户端发布的第101个QoS2主题。
2:MQTT服务器发送过来的释放连接请求。
引起这个问题的原因是EMQX默认为每个会话指定未收到 PUBREL 且未超时的最大 QoS 2 消息数量为100。超过限制后,新的 QoS 2 消息发布会被拒绝,并返回 147(0x93) 错误。
2 解决方案
(1)点击MQTT配置
(2)点击会话
(3)修改最大待发PUBREL数量为一个较大的值,这里设置为1千万:
(4)发布QoS2主题测试
连续发送1500+个QoS2主题,EMQX不会再断开连接,一切工作正常