第十三章 MQTT消息

article/2025/7/20 1:26:46

系列文章目录

系列文章目录
第一章 总体概述
第二章 在实体机上安装ubuntu
第三章 Windows远程连接ubuntu
第四章 使用Docker安装和运行EMQX
第五章 Docker卸载EMQX
第六章 EMQX客户端MQTTX Desktop的安装与使用
第七章 EMQX客户端MQTTX CLI的安装与使用
第八章 Wireshark工具的安装与使用
第九章 MQTT报文
第十章 MQTT消息质量等级QoS
第十一章 MQTT主题
第十二章 MQTT会话
第十三章 MQTT消息


文章目录

  • 系列文章目录
  • 前言
  • 一、保留消息
    • 1.保留消息简介
    • 2.保留消息的使用
    • 3.保留消息的存储方式
    • 4.保留消息的删除方式
  • 总结


前言

一、保留消息

1.保留消息简介

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

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

如下图,当客户端订阅主题时,如果服务端存在该主题匹配的保留消息,则该保留消息将被立即发送给该客户端。
在这里插入图片描述

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

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

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

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

2.保留消息的使用

发布保留消息

在发布消息的时候将Retained 标记被设置为 true,则该消息即是 MQTT 中的保留消息(Retained Message)。
在这里插入图片描述
注意事项:

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

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

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

3.保留消息的存储方式

保留消息的存储方式:内存存储(默认存储类型)、磁盘存储
在这里插入图片描述
在这里插入图片描述
5、保留消息虽然存储在服务端中,但它并不属于会话的一部分。也就是说,即便发布这个保留消息的会话已结束,保留消息也不会被删除。

4.保留消息的删除方式

1、客户端往某个主题发送一个 Payload 为空的保留消息,服务端就会删除这个主题下的保留消息;
在这里插入图片描述
2.在 MQTT 服务器上删除,比如 EMQX MQTT 服务器提供了在 Dashboard 上删除保留消息的功能;
在这里插入图片描述
3.MQTT 5.0 新增了消息过期间隔属性,发布时可使用该属性设置消息的过期时间,将会在过期时间后自动被删除。
在这里插入图片描述


总结


http://www.hkcw.cn/article/BnmBGgXyaK.shtml

相关文章

国芯思辰| 16通道12位模数转换器SC1425高性价比SGM5200替代方案,专为数字电源优化

与传统的模拟电源相比,数字电源的主要区别是控制与通信部分。在复杂的多系统业务中,数字电源是通过软件编程来实现多方面的应用,数字电源广泛应用于在可控因素较多、实时反应速度更快、需要多个模拟系统电源管理的、复杂的高性能系统应用中。…

Java 大数据处理:使用 Hadoop 和 Spark 进行大规模数据处理

Java 大数据处理:使用 Hadoop 和 Spark 进行大规模数据处理 在当今数字化时代,数据呈现出爆炸式增长,如何高效地处理大规模数据成为企业面临的重要挑战。Java 作为一门广泛使用的编程语言,在大数据处理领域同样发挥着关键作用。本…

深度学习复习笔记

深度前馈神经网络 卷积神经网络 Advanced卷积神经网络 Lightweight CNN dwconv squeezenet 这边右侧的e3是3x3卷积吧 SENet 在通道维度压一下,强迫各维度混合学习,再还原 ShuffleNet Group Convolution在 AlexNet 中引入,用于将模型分布到…

Linux系统编程收尾(35)

文章目录 前言一、读写锁二、自旋锁总结 前言 大家好,这是我们Linux系统编程的最后一节课了!   大家请再撑住一会儿~ 一、读写锁 提到读写锁,我们就不得不提到 读者写者模型 ,跟 生产者消费者模型 不同的是,本模型的…

C文件操作1

一、为什么使用文件 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失 了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存&am…

基于 AUTOSAR 的域控产品软件开发:从 CP 到 AP 的跨越

基于 AUTOSAR 的域控产品软件开发:从 CP 到 AP 的跨越 一、AUTOSAR AP 架构解析:面向智能汽车的自适应框架 (一)引言 随着汽车智能化向 L3 演进,传统 AUTOSAR CP(经典平台)在实时性、动态性和…

解密震颤背后的神经隐情

在人体精密运行的神经世界里,有一种疾病悄然打破生命的节奏,它就是帕金森。这一病症并非突然降临,而是随着时间,如潮水般慢慢侵蚀着身体的正常机能。​ 患病后,最直观的变化体现在肢体运动上。双手会不受控制地颤抖&a…

数据即资产:GEO如何重塑企业的信息价值链

在数字经济时代,数据早已被公认为企业的核心资产。然而,随着生成式AI的崛起,数据资产的定义、价值和管理方式正在发生根本性变革。深耕数字营销二十余年,我们亲历了从"数据即记录"到"数据即洞察",…

2025年文学与文化发展国际会议(ICLCD 2025)

2025年文学与文化发展国际会议(ICLCD 2025) 2025 International Conference on Literature and Cultural Development 一、大会信息 会议简称:ICLCD 2025 大会地点:中国天津 审稿通知:投稿后2-3日内通知 投稿邮箱&am…

SPL 轻量级多源混算实践 4 - 查询 MongoDB

除了以上常见数据源,还有 NoSQL、MQ 等数据源,其中以 MongoDB 最为常用。我们用 SPL 连接 MongoDB 做计算。 导入 MongoDB 数据。 外部库 SPL 支持的多种数据源大概分两类,一类是像 RDB 有 JDBC 直接使用,或者文件等直接读取&a…

特别篇-产品经理(三)

一、市场与竞品分析—竞品分析 1. 课后总结 案例框架:通过"小新吃蛋糕"案例展示行业分析方法,包含四个关键步骤: 明确目标行业调研确定竞品分析竞争策略输出结论 1)行业背景分析方法 PEST分析法:从四个…

Photoshop使用钢笔绘制图形

1、绘制脸部路径 选择钢笔工具,再选择“路径”。 基于两个点绘制一个弯曲的曲线 使用Alt键移动单个点,该点决定了后续的曲线方向 继续绘制第3个点 最后一个点首尾是同一个点,使用钢笔保证是闭合回路。 以同样的方式绘制2个眼睛外框。 使用椭…

EMQX社区版5.8.5集群搭建踩坑记

一、首先要在三台物理机上分别搭建EMQX的实例 正常的安装是很简单的,并且有多种方式,我选取的是tar.gz安装包。 只需要把安装包解压tar -zxvf emqx-5.8.5xxx.tar.gz,然后进入到bin目录下,执行./emqx start即可。 1. 需要考虑操作…

长短期记忆(LSTM)网络模型

一、概述 长短期记忆(Long Short-Term Memory,LSTM)网络是一种特殊的循环神经网络(RNN),专门设计用于解决传统 RNN 在处理长序列数据时面临的梯度消失 / 爆炸问题,能够有效捕捉长距离依赖关系。…

t014-项目申报管理系统 【springBoot 含源码】

项目演示视频 摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,项目信息因为其管理内容繁杂,管理数量繁多导致手工进行…

软件评测机构如何保障质量?检测资质、技术实力缺一不可

软件评测机构在保障软件质量上起着关键作用,对软件行业的健康发展极为关键。它们采用专业的技术手段和严格的评估流程,对软件的运行效果、功能等多方面进行细致的审查,为开发者和使用者提供了客观、公正的参考依据。 检测资质正规软件评测机…

安卓逆向篇JEB 反编译断点动态调试加密算法还原逻辑会员绕过

#APK 逆向 - 反编译 & 动态调试 -Jeb&Adb 0 、模拟器开发者模式 - 启用开发者模式(快速单击 5 次关于平板电脑版本) - 系统 - 高级 - 开发者选项 - 启用 USB 调试模式 - 模拟器设置里面开启 root 及磁盘共享可写入 0 、 Jeb 环境配…

【传感器技术】电感式传感器,变磁阻式传感器。互感式传感器,电涡流式传感器

一、磁路 线圈通入电流后,产生磁通,分主磁通和漏磁通。 二、磁路的欧姆定律 对于环形线圈 磁路与电路对照 磁路的计算 在计算电机、电器等的磁路时,要预先给定铁心中的磁通(或磁感应强度),而后按照所给的…

UE利用RenderTaget在UI上渲染目标

创建RenderTaget2D 创建 半透明 用户界面 材质 , 透明度用1- 反转一下 创建WBP 把材质放进Image 创建Actor蓝图 添加摄像机 和 SceneCaptureComponent 场景捕获组件2D SceneCaptureComponent2D 可以选择排除不捕获的物体 关卡蓝图中 创建UI 把Actor拖入场景 就能显示了 运行…

如何使用windows下的vscode连接到本地虚拟机的linux

1.打开windows下的vscode 下载下图所示插件 下载完以后打开首选项选择设置搜索ssh 搜索ssh往下滑对下图打上勾 点击下图或者按ctrl shift P 搜索ssh 选择第一个,双击后 进入这个界面 好的window基本配置差不多 2.打开虚拟机 在终端中输入 sudo apt-get install…