默认的PAHO MQTT实现是否会保留所有正在推送的消息,直到它们的传递在QoS 2中得到明确确认?或者如果不是如何通过我们自己实现这样的呢?
更新 自从paho android服务版本1.1.0自动重新连接和离线缓冲功能实现。有关详细信息:https://www.eclipse.org/paho/clients/android/
答案 0 :(得分:6)
来自MqttClient的javadoc
默认情况下,MqttDefaultFilePersistence用于将消息存储到文件中。如果持久性设置为null,则消息将存储在内存中,因此如果客户端,Java运行时或设备关闭,则可能会丢失。
这意味着只要您正确设置路径并拥有正确的Android权限以写入本地存储,QOS2消息就应该保留,直到交付给代理(而不是最终订阅者)。
答案 1 :(得分:0)
<强>更新强>
由于paho android服务版本1.1.0自动重新连接和离线缓冲已实现。请参阅:https://www.eclipse.org/paho/clients/android/。