取消订阅后,MQTT消息仍然存在,并在再次订阅时收到

时间:2016-03-18 09:28:17

标签: android mqtt paho

我的应用程序使用Android上的paho mqtt库来订阅主题列表。在登录应用程序订阅时,在Logout取消订阅主题。订阅时QoS设置为1。

下次登录后,我会在取消订阅后获得经纪人发布的所有mqtt消息。

取消订阅的回调告知取消订阅成功。 据我所知,一旦我取消订阅,我就不应该在此之后得到任何消息。

这是我的doConnect()用于建立连接和订阅

SnapOperationQueue.Normal.queue()

这是我的onDestroy,我取消订阅并断开连接

<Table>

问题是由于应用取消订阅不正确吗?

1 个答案:

答案 0 :(得分:2)

这是因为您已将cleanSession标志设置为false。

如果您不希望消息排队,请将其设置为true。

...
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(true);
options.setKeepAliveInterval(30);
...

Clean Session标志告诉代理存储QOS 1/2订阅的任何消息,直到客户端重新连接。

相关问题