前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mqtt保留消息简介,mqtt保留消息的常见使用场景

mqtt保留消息简介,mqtt保留消息的常见使用场景

原创
作者头像
高久峰
发布2024-12-03 09:53:50
发布2024-12-03 09:53:50
2820
举报

4.1 保留消息

4.1.1 保留消息简介

普通消息:普通消息在发送之前其所对应的主题如果不存在订阅者,普通消息MQTT服务器会直接将其丢弃。

保留消息:保留消息可以保留在 MQTT 服务器中。任何新的订阅者订阅与该保留消息中的主题匹配的主题时,都会立即接收到该消息,即使这个消息是在它们订阅主题之前

发布的。

当客户端订阅主题时,如果服务端存在该主题匹配的保留消息,则该保留消息将被立即发送给该客户端。

保留消息的常见使用场景:

1、智能家居设备的状态只有在变更时才会上报,但是控制端需要在上线后就能获取到设备的状态;

2、传感器上报数据的间隔太长,但是订阅者需要在订阅后立即获取到最新的数据;

3、传感器的版本号、序列号等不会经常变更的属性,可在上线后发布一条保留消息告知后续的所有订阅者;

4.1.2 保留消息使用

发布保留消息

在发布消息的时候将Retained 标记被设置为 true,则该消息即是 MQTT 中的保留消息(Retained Message)。

注意事项:

1、可以通过Dashboard查看保留消息

2、MQTT 服务器会为每个主题存储最新一条保留消息

3、在保留消息发布前订阅主题,将不会收到保留消息。需要待保留消息发布后,重新订阅该主题,才会收到保留消息。

保留消息的存储方式

保留消息的存储方式:内存存储(默认存储类型)、磁盘存储

5、保留消息虽然存储在服务端中,但它并不属于会话的一部分。也就是说,即便发布这个保留消息的会话已结束,保留消息也不会被删除。

保留消息的删除方式

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

2、在 MQTT 服务器上删除,比如 EMQX MQTT 服务器提供了在 Dashboard 上删除保留消息的功能;

3、MQTT 5.0 新增了消息过期间隔属性,发布时可使用该属性设置消息的过期时间,将会在过期时间后自动被删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.1 保留消息
    • 4.1.1 保留消息简介
    • 4.1.2 保留消息使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档