如何使用cocoaMQTT使用户在iOS中脱机

时间:2017-10-27 12:17:44

标签: ios swift activemq mqtt

我使用swift在iOS上工作。我在我的iOS应用程序中使用cocoa mqtt协议。 我也在使用Activemq作为消息代理。

目标

我订阅了 ActiveMQ 上的主题。之后,当我取消订阅ActiveMQ上的主题时,我希望用户仍然是该主题的订阅者,但不接收消息。它离线了。

我希望订阅者再次处于活动状态时可以使用该主题中的待处理消息。

问题陈述

当我取消订阅该主题时,该用户不再是主题的订阅者,并且在该主题上发送的所有消息都会在取消订阅期间丢失(我没有收到)。

1 个答案:

答案 0 :(得分:0)

此问题的一个解决方案是使用内置于MQTT中的保留消息传递功能。然后,您将收到关于每个主题发布的最后一条消息,即使您已经在之前的会话中收到过这些消息。

另一种解决方案是在发送的消息上使用QoS 1或2。如果您的应用与cleanSession设置为false并且消息是使用QoS 1或2发布的,则您将收到与代理断开连接时发送的消息。

详细了解MQTT QoS here