最近使用MQTT做实时推送,最开始使用的服务器是Apache-apollo-window;正常业务是可以走通的,但是当我设置setCleanSession(false);然后断开订阅的客户端;发现无法接受到前面的信息;后面推送的也接受不到(设置为true的时候可以接受到,但是之前推送的消息只接收到最新的一条);
经测试重启apollo后是可以接受到之前所有未接受的消息;故本人推测是因为断链重连后的sessionid在服务器或者客户端有一端进行更新,另一端保存使用;
后来本人将服务器换为mosquitto后,相同的代码未出现同样的问题。
仅供大家借鉴。