我的应用程序使用Android上的paho mqtt库来订阅主题列表。在登录应用程序订阅时,在Logout取消订阅主题。订阅时QoS设置为1。
下次登录后,我会在取消订阅后获得经纪人发布的所有mqtt消息。
取消订阅的回调告知取消订阅成功。 据我所知,一旦我取消订阅,我就不应该在此之后得到任何消息。
这是我的doConnect()用于建立连接和订阅
SnapOperationQueue.Normal.queue()
这是我的onDestroy,我取消订阅并断开连接
<Table>
问题是由于应用取消订阅不正确吗?
答案 0 :(得分:2)
这是因为您已将cleanSession标志设置为false。
如果您不希望消息排队,请将其设置为true。
...
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(true);
options.setKeepAliveInterval(30);
...
Clean Session标志告诉代理存储QOS 1/2订阅的任何消息,直到客户端重新连接。