首页 文章

Paho Java - 文件持久性

提问于
浏览
1

我最近开始使用paho mqtt for java和mqtt,我坚持使用mqtt broker和paho client提供的持久性机制 . 也许我在mqtt的背景下误解了(很可能是)持久性的概念 .

Use case which we have to support is following :应该有可能我们的mqtt客户端断开了7天(我非常怀疑它会发生,但是没问题)甚至应用程序关闭而不会在这7天内恢复连接,并且一旦启动并运行在断开连接的7天内发送所有消息 .

Paho客户端在它或代理关闭时支持缓冲消息的持久性,一旦网络恢复或代理启动,就会发送缓冲消息,但如果应用程序在客户端断开连接或代理时关闭,则无法发送缓冲消息没有 .

基本上我的问题是 - 断开缓冲的消息是否有可能在paho客户端关闭并重新启动后继续存在?

3 回答

  • 0

    规范没有说明它,只是指定:

    保留消息是正常的MQTT消息,其中保留标志设置为true . 代理将存储最后保留的消息以及该主题的相应QoS每个订阅主题模式的客户端(与保留消息的主题相匹配)将在订阅后立即接收消息 . 对于每个主题,代理仅存储一条保留的消息 .

    如您所见,您的客户只会获得该主题的最后发布消息...

    其他一切背后都是好的!

  • 0

    假设您使用的是 MqttDefaultFilePersistence 而不是 MemoryPersistence 模块,那么客户端应该在无法访问代理时对消息进行排队,并且这些排队的消息也应该在客户端重新启动后继续存在 .

    离线缓冲是一个相对较新的功能,但它应该在所有当前版本中

  • 0

    将客户端ID和清除会话设置为false将在客户端断开连接时保留代理处的所有消息 .

    设置MaxInflight以在客户端排队消息,而代理已关闭 .

相关问题