MQTT遗嘱信息(2)

接前一篇文章:MQTT遗嘱信息(1)

本文内容参考:

什么是MQTT遗嘱消息?如何配置和处理遗嘱消息?_mqtt last will-CSDN博客

MQTT 协议学习:Retained(保留消息) 与 LWT(最后遗嘱)

特此致谢!

4. 设置和处理遗嘱消息

在MQTT中,设置和处理遗嘱消息涉及两个角色:发布者(客户端)和订阅者。

  • 设置遗嘱消息

作为MQTT客户端的发布者,可以通过以下步骤设置遗嘱消息:

 1)创建连接

使用MQTT客户端库或工具创建与MQTT代理(Broker)的连接。

2)设置遗嘱消息选项

在建立连接时,设置遗嘱消息的主题、负载、QoS级别和保留选项。这些选项通常通过客户端库的API或配置文件进行设置。

3)连接到代理

使用客户端库的连接功能连接到MQTT代理。

一旦客户端与代理建立连接,代理将会记录客户端的遗嘱消息设置。如果客户端在之后异常断开连接,代理将自动发布遗嘱消息给其他订阅者。

  • 处理遗嘱消息

作为MQTT客户端的订阅者,可以通过以下步骤处理遗嘱消息:

1)创建连接

使用MQTT客户端库或工具创建与MQTT代理的连接。

2)使用订阅功能订阅遗嘱消息的主题

通常,订阅主题与发布者设置的遗嘱消息主题相对应。

3)接收遗嘱消息

一旦成功订阅主题,订阅者将接收到发布者的遗嘱消息。根据需要,可以处理遗嘱消息中的负载数据或执行相应的操作。

订阅者可以根据实际需求对接收到的遗嘱消息进行解析和处理,以满足特定的业务逻辑和应用需求。

5. 遗嘱消息底层机制

前文已提到,LWT全称为Last Will and Testament,也就是我们在连接到Broker时提到的遗嘱,包括遗嘱主题、遗嘱 QoS、遗嘱消息等。顾名思义,当Broker检测到Client非正常地断开连接的时候,就会向遗嘱主题里面发布一条消息。遗嘱相关的设置是在建立连接的时候在CONNECT数据包里面的Variable header(可变头)与 Payload(有效载荷)中指定的

  • Will Flag

是1否0使用LWT。

  • Will Topic

遗嘱主题名,不可使用通配符(在CONNECT报文中的有效载荷中设置)。

  • Will Qos

发布遗嘱消息时使用的QoS等级,如果遗嘱标志(Will Flag)被设置为0,遗嘱QoS也必须设置为0(0x00)。

  • Will Retain

遗嘱消息的Retain标识。

  • Will Message

遗嘱消息内容(在 CONNECT报文中的有效载荷中设置)。

Broker在以下情况下认为Client是非正常断开连接的:

  • Broker检测到底层的I/O异常;

  • Client未能在Keep Alive的间隔内和Broker之间有消息交互;

  • Client在关闭底层TCP连接前没有发送DISCONNECT数据包(如果Client通过发布 DISCONNECT数据包断开连接,这个属于正常断开连接,不会触发LWT的机制,同时,Broker还会丢弃掉这个 Client 在连接时指定的LWT参数);

  • Broker因为协议错误关闭和Client的连接,比如Client发送了一个格式错误的MQTT数据包。

总结

MQTT遗嘱消息是一项强大而灵活的功能,为物联网和传感器网络提供了可靠的通信机制。通过合理配置和利用遗嘱消息,可以实现实时状态通知、可靠的离线处理、资源管理和信息传递等多种应用场景。在设计和实现MQTT系统时,考虑到遗嘱消息的设置和处理,可以提高系统的可靠性、弹性和可管理性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shark云原生-日志管理体系-filebeat

文章目录 1. deploy 文件1.1 RBAC1.2. DaemonSet1.2.1. Elasticsearch 连接信息1.2.2. Volume 1.3. ConfigMap1.3.1. 日志收集路径1.3.2. 日志事件输出目标 2. 在控制平面节点上运行Filebeat3. 查看输出3.1. 关于处理器 processors 4. 日志收集配置4.1. 手动指定日志收集路径4.…

基于SpringBoot前后端分离旅游出行管理系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟感兴趣的可以先收藏起来,还…

聚观早报 | iPhone 16核心硬件曝光;三星Galaxy全球新品发布会

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 6月28日消息 iPhone 16核心硬件曝光 三星Galaxy全球新品发布会 苹果正多方下注布局AI商店 黄仁勋2024年薪酬3400…

Zynq7000系列FPGA中的DMA控制器简介(一)

DMA控制器(DMAC)使用64位AXI主接口来执行与系统存储器和PL外围设备之间的DMA数据传输,操作频率同CPU_2x的时钟速率。传输由DMA指令执行引擎控制。DMA引擎运行在一个小指令集上,该指令集提供了一种灵活的指定DMA传输的方法。这种方…

【电路笔记】-MOSFET放大器

MOSFET放大器 文章目录 MOSFET放大器1、概述2、电路图3、电气特性3.1 ** I D = F ( V G S ) I_D=F(V_{GS}) ID​=F(VGS​)**特性3.2 I D = F ( V D S ) I_D=F(V_{DS}) ID​=F(VDS​)特性4、MOSFET放大器5、输入和输出电压6、电压增益7、总结1、概述 在前面的文章中,我们已经…

基本的 Spring Boot 配置步骤和常见的配置项【创建,配置,日志,数据库,安全,MVC】

基本的 Spring Boot 配置步骤和常见的配置项【创建,配置,日志,数据库,安全,MVC】 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、…

EAK高压电阻器-引线高压电阻器-厚膜高压电阻器

描述 EAK高压电阻器是扁平高压电阻器,完全满足低感、稳定和精密无源元件的所有要求。 扁平高压电阻器最适合作为组装在 PCB 上的有线元件,但也可以用作 SMD 元件。 我们提供 HVR、HPR、HVI、HVD 和 HVS 系列的扁平高压电阻器,这些电阻器具…

AI+零信任 | 易安联亮相首届“矩阵杯”网络安全大赛

6月26日, 首届“矩阵杯”网络安全大赛 在青岛国际会议中心举行。大赛由360数字安全、华云安主办,赛宁网安、永信至诚、红客社区协办,致力于推动提升全民网络安全意识、发现顶尖安全人才、鼓励技术创新发展,推动安全行业共建共享…

Cambrian-1:探索以视觉为中心的多模态LLM新纪元

一、摘要 论文:Cambrian-1: A Fully Open, Vision-Centric Exploration of Multimodal LLMs,https://arxiv.org/abs/2406.16860 主页:https://cambrian-mllm.github.io/ 代码:https://github.com/cambrian-mllm/cambrian 本文研发…

堆栈与堆内存 - C#

探索 C# 编程中内存管理的细微差别,区分值类型和引用类型,理解动态和静态内存分配,评估访问效率… 背景 以下是 C# 中堆栈和堆内存之间的主要区别列表。这适用于初学者和专业的 C# 开发人员。 C# 中栈和堆内存的区别 概括 现在&#xff0c…

主流电商平台API接口(天猫获得淘宝商品详情,获得淘宝app商品详情原数据 ,获得淘口令真实url API,按图搜索淘宝商品(拍立淘) API )

主流电商平台商品接口在电商企业中具有重要应用价值。通过商品接口,电商企业可以实现商品同步功能: 商品信息同步:通过接口可以实时同步主流电商平台上的商品信息,包括商品标题、价格、库存、销量等数据,确保企业在自…

RabbitMQ实践——搭建单人聊天服务

大纲 创建Core交换器用户登录发起聊天邀请接受邀请聊天实验过程总结代码工程 经过之前的若干节的学习,我们基本掌握了Rabbitmq各个组件和功能。本文我们将使用之前的知识搭建一个简单的单人聊天服务。 基本结构如下。为了避免Server有太多连线导致杂乱,下…

哈喽GPT-4o,对GPT-4o 数据分析Data Analysis的思考与看法

目录 上传一个Excel给Data Analysis。Prompt:请问这个数据集是做什么的Prompt:请问书籍的定价如何,请用合适的图表展示它的售价情况Prompt:请统计书名列中出现最多的名称,然后使用词云将其可视化。Prompt:请…

58.鸿蒙系统app(HarmonyOS)(ArkUI)更改应用程序图标

替换xx\MyApplication4.30\entry\src\main\resources\base\media目录下icon.png文件 54.HarmonyOS鸿蒙系统 App(ArkTS)tcp socket套接字网络连接收发测试_鸿蒙socket连接测试-CSDN博客

『Django』模型入门教程-操作MySQL

theme: smartblue 点赞 关注 收藏 学会了 本文简介 一个后台如果没有数据库可以说废了一半。日常开发中大多数时候都在与数据库打交道。Django 为我们提供了一种更简单的操作数据库的方式。 在 Django 中,模型(Model)是用来定义数据库结构的类。每个模型类通常对…

C++之STL(十二)

1、容器适配器 #include <iostream> #include <stack> #include <list> #include <queue> #include <functional> #include <iterator>using namespace std;int main() {// 栈&#xff08;先进后出filo&#xff09;stack<int, list<…

基于PHP的长城景区信息管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的长城景区信息管理系统 一 介绍 此长城景区信息管理系统基于原生PHP开发&#xff0c;数据库mysql。系统角色分为用户和管理员。 技术栈&#xff1a;phpmysqlphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 浏览长城景区信息(旅…

Unity解决报错:Execution failed for task ‘:unityLibrary:BuildIl2CppTask‘

目录 编辑器版本2020.3.33f1 及 2021.3.15f1 直接导出apk或aar报错(虽然会自动生成temp的AS工程&#xff0c;经过打开验证 也是无解的)&#xff1b; 唯一解决办法&#xff1a;Unity导出As工程没问题&#xff1b; 编辑器版本2020.3.33f1 及 2021.3.15f1 直接导出apk或aar报…

[电子电路学]电路分析基本概念1

第一章 电路分析的基本概念和基本定律 电路模型 反映实际电路部件的主要电磁性质的理想电路元件及其组合&#xff0c;是实际电路电气特性的抽象和近似。 理想电路元件 实际电路器件品种繁多&#xff0c;其电磁特性多元而复杂&#xff0c;分析和计算时非常困难。而理想电路元件…

一款开源、免费、现代化风格的WPF UI控件库

前言 今天大姚给大家分享一款开源&#xff08;MIT License&#xff09;、免费、现代化风格的WPF UI控件库&#xff1a;ModernWpf。 项目介绍 ModernWpf是一个开源项目&#xff0c;它为 WPF 提供了一组现代化的控件和主题&#xff0c;使开发人员能够创建具有现代外观的桌面应…