Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EclipsePAHOMQTT客户机是否保留所有已发布的消息,直到代理在QoS-2下确认这些消息以供交付?_Java_Android_Mqtt_Paho - Fatal编程技术网

Java EclipsePAHOMQTT客户机是否保留所有已发布的消息,直到代理在QoS-2下确认这些消息以供交付?

Java EclipsePAHOMQTT客户机是否保留所有已发布的消息,直到代理在QoS-2下确认这些消息以供交付?,java,android,mqtt,paho,Java,Android,Mqtt,Paho,默认的PAHO MQTT实现是否会保留所有正在推送的消息,直到QoS 2中明确确认它们的传递?或者,如果不是这样,我们如何能够自己实施这些措施 更新 由于paho android服务版本1.1.0实现了自动重新连接和离线缓冲功能。有关更多信息:来自For MqttClient 默认情况下,MqttDefaultFilePersistence用于将消息存储到文件中。如果persistence设置为null,则消息存储在内存中,因此,如果客户端、Java运行时或设备关闭,消息可能会丢失 这意味着,只

默认的PAHO MQTT实现是否会保留所有正在推送的消息,直到QoS 2中明确确认它们的传递?或者,如果不是这样,我们如何能够自己实施这些措施

更新 由于paho android服务版本1.1.0实现了自动重新连接和离线缓冲功能。有关更多信息:

来自For MqttClient

默认情况下,MqttDefaultFilePersistence用于将消息存储到文件中。如果persistence设置为null,则消息存储在内存中,因此,如果客户端、Java运行时或设备关闭,消息可能会丢失


这意味着,只要您正确设置了路径并具有写入本地存储的正确Android权限,QOS2消息就应该一直保留,直到发送到代理(而不是最终订户)。

更新


由于paho android服务版本1.1.0实现了自动重新连接和离线缓冲。请参阅:

这是否意味着,在客户端断开连接的情况下,它可以作为脱机缓冲区使用?不,它只会缓冲正在传输的消息,如果在调用publish方法之前连接断开,那么它将抛出异常,并且在重新连接后,您的任务是保持并重新发送。很好:)现在一切都有意义了。您对离线持久性工作的最佳实践有何初步想法?@NowaConcordia use
sqlite
。当连接mqtt时,发送它。