EMQ X MQTT 5.0服务器的保留消息与消息过期间隔怎么实现

发布时间:2021-12-07 09:13:58 作者:iii
来源:亿速云 阅读:202

本篇内容介绍了“EMQ X  MQTT 5.0服务器的保留消息与消息过期间隔怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

保留消息

服务端收到 Retain 标志为 1 的 PUBLISH 报文时,会将该报文视为保留消息,除了被正常转发以外,保留消息会被存储在服务端,每个主题下只能存在一份保留消息,因此如果已经存在相同主题的保留消息,则该保留消息被替换。

当客户端建立订阅时,如果服务端存在主题匹配的保留消息,则这些保留消息将被立即发送给该客户端。借助保留消息,新的订阅者能够立即获取最近的状态,而不需要等待无法预期的时间,这在很多场景下非常重要的。

保留消息虽然存储在服务端中,但它并不属于会话的一部分。也就是说,即便发布这个保留消息的会话终结,保留消息也不会被删除。删除保留消息只有两种方式:

  1. 客户端往某个主题发送一个 Payload 为空的保留消息,服务端就会删除这个主题下的保留消息。

  2. 如果包含保留消息的 PUBLISH 报文设置了消息过期间隔属性,那么保留消息在服务端存储超过过期时间后就会被删除。

消息过期间隔

PUBLISH 报文可以设置消息过期间隔这一属性,消息过期间隔是一个四字节的整数,表示应用消息的生命周期,单位是秒。

如果 PUBLISH 报文不设置消息过期间隔,那么应用消息不会过期。

如果 PUBLISH 报文设置了消息过期间隔,并且消息过期将已经过期,服务端还没开始向匹配的订阅者交付该消息,那么服务端必须删除该消息。

EMQ X MQTT 服务器的保留消息

EMQ X MQTT Broker 的保留消息功能是由 emqx_retainer 插件实现,该插件默认开启,通过修改 emqx_retainer 插件的配置,可以调整 EMQ X Broker 储存保留消息的位置,限制接收保留消息数量和 Payload 最大长度,以及调整保留消息的过期时间。

emqx_retainer 插件默认开启,插件的配置路径为 etc/plugins/emqx_retainer.conf

“EMQ X  MQTT 5.0服务器的保留消息与消息过期间隔怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. EMQ X Cloud - MQTT 5.0 公有云服务正式发布
  2. MQTT和CoAP在EMQ X里怎么实现连接

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

emq x mqtt

上一篇:EMQ X MQTT 5.0主题重写怎么运用

下一篇:Hyperledger fabric Chaincode开发的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》