MqttWk高级特性:遗嘱消息、保留消息与QoS等级详解 MqttWk高级特性遗嘱消息、保留消息与QoS等级详解【免费下载链接】MqttWkJava Netty 实现的高并发高可用MQTT服务broker轻松支持10万并发(有群友实现了130万在线)项目地址: https://gitcode.com/gh_mirrors/mq/MqttWkMqttWk是基于Java Netty实现的高并发高可用MQTT服务broker轻松支持10万并发连接。本文将深入解析其三大核心高级特性遗嘱消息、保留消息与QoS服务质量等级帮助开发者构建更可靠的物联网通信系统。一、遗嘱消息设备离线的最后遗言 遗嘱消息Will Message是MQTT协议为设备离线检测设计的关键机制。当客户端异常断开连接时Broker会自动向预设主题发布一条遗言通知其他设备该客户端的离线状态。遗嘱消息的工作原理在MqttWk中遗嘱消息通过SessionStore类实现持久化存储// 会话存储类定义遗嘱消息字段 private MqttPublishMessage willMessage;当客户端建立连接时可通过CONNECT报文指定遗嘱参数遗嘱标志位启用遗嘱功能遗嘱QoS消息发布的服务质量等级遗嘱保留标志是否将遗嘱消息设为保留消息遗嘱主题消息发布的目标主题遗嘱 payload具体的离线通知内容典型应用场景智能门锁离线通知工业设备故障报警wearable设备连接状态同步二、保留消息新订阅者的欢迎礼物 保留消息Retain Message是Broker为主题存储的最新消息快照当新客户端订阅该主题时会立即收到这条历史消息无需等待新数据发布。保留消息的实现机制MqttWk在Publish.java协议处理类中实现保留消息功能// 保留消息存储逻辑 if (msg.fixedHeader().isRetain()) { RetainMessageStore retainMessageStore new RetainMessageStore() .setTopic(topic) .setMqttQoS(qosLevel.value()) .setMessageBytes(messageBytes); retainMessageStoreService.put(topic, retainMessageStore); }保留消息使用建议设置合理的QoS等级确保消息可靠传递定期更新保留消息避免陈旧数据对频繁变化的传感器数据谨慎使用图MqttWk使用mqtt-spy工具测试消息发布的界面展示了主题订阅与消息收发过程三、QoS服务质量等级可靠通信的三选一 QoSQuality of Service定义了MQTT消息传递的可靠性级别MqttWk完整实现了MQTT协议规定的三种服务质量QoS 0最多一次At Most Once特点消息发送后不等待确认可能丢失适用场景环境传感器数据、实时监控视频流实现代码MqttQoS.AT_MOST_ONCEQoS 1至少一次At Least Once特点消息发送后等待PUBACK确认确保送达但可能重复适用场景控制指令、报警信息实现代码MqttQoS.AT_LEAST_ONCEQoS 2恰好一次Exactly Once特点通过PUBREC/PUBREL/PUBCOMP三次握手确保消息仅送达一次适用场景金融交易、关键指令实现代码MqttQoS.EXACTLY_ONCEQoS等级选择策略MqttWk在消息分发时会自动协商最终QoS等级// 订阅者收到的QoS取发布QoS和订阅QoS的最小值 MqttQoS respQoS mqttQoS.value() subscribeStore.getMqttQoS() ? MqttQoS.valueOf(subscribeStore.getMqttQoS()) : mqttQoS;四、三大特性的协同应用案例 在智能工厂场景中MqttWk的三大特性可协同工作设备上线新设备订阅/factory/machines主题收到保留消息获取当前生产状态正常运行设备通过QoS 1定期发送传感器数据异常离线触发遗嘱消息/factory/alerts/offline通知监控系统及时处理五、快速上手MqttWk要体验这些高级特性只需三步克隆仓库git clone https://gitcode.com/gh_mirrors/mq/MqttWk查看核心实现QoS处理Publish.java保留消息RetainMessageStoreService.java遗嘱消息SessionStore.java启动测试通过MainLauncher.java启动Broker使用mqtt-spy等工具测试消息功能MqttWk的这些高级特性使其成为构建可靠物联网系统的理想选择无论是智能家居、工业监控还是车联网场景都能提供稳定高效的消息通信能力。【免费下载链接】MqttWkJava Netty 实现的高并发高可用MQTT服务broker轻松支持10万并发(有群友实现了130万在线)项目地址: https://gitcode.com/gh_mirrors/mq/MqttWk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/26 23:24:47
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/26 18:48:15
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/27 15:27:56
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/26 11:37:29
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 9:16:41
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/26 21:11:24

日新闻

周新闻