场景
JAVA数据发送端有日志显示数据已经发布出去了。MQTTX订阅该主题,没有收到数据,刚开始能够收到数据,过段时间就无法订阅接收到数据,断开重连,重新订阅也无法接收到数据.
怀疑
MQTTX没有重连,实际上设置了重连也不行
排查过程
1工具收发排查
启动订阅主题
mosquitto_sub.exe -h 10.172.5.3 -p 1883 -u admin -P 123456 -t PSMXYZ
启动发送
mosquitto_pub.exe-h 10.172.5.3 -p 1883 -u admin -P 123456 -t PSMXY -m "aaaaaaaaa"
命令行工具能够正常接收到主题信息,而且MQTTX也是能正常接收到消息
说明MQTT服务器是正常的
2服务器抓包查看是否有收到主题消息
由于MQTT消息没有加密,wireshark并且可以完整解析出整一个报文协议,因此监听是否有收到发布的消息
定位到原因:JAVA发送端采用MQTT3的版本(1.2.0)长时间发布消息会出现发送消息失败的问题,目前采用1.4.1版本重新做测试