当前位置: 首页 > article >正文

聊聊 MQTT:物联网的“普通话”

你有没有想过智能家居里的设备之间是怎么“聊天”的比如温度传感器检测到室温过高是怎么通知空调自动打开的又或者你的手机 APP 是怎么远程控制花园里的喷灌系统的这些设备往往来自不同厂商运行在不同的硬件平台上使用不同的编程语言开发。让它们高效、可靠地相互通信并不是一件容易的事。而 MQTT 协议正是为了解决这类问题而生的。什么是 MQTTMQTT 的全称是Message Queuing Telemetry Transport消息队列遥测传输协议。名字听起来很唬人但它的设计目标其实非常朴素用最少的带宽和电量在不可靠的网络环境下实现设备间的可靠通信。它诞生于 1999 年由 IBM 的安迪·斯坦福-克拉克Andy Stanford-Clark和阿兰·尼普Arlen Nipper共同发明。最初的应用场景是石油管道监控——设备位于沙漠深处网络带宽极其有限而且经常断线。是不是很像今天的物联网场景2014 年MQTT 成为了正式的 OASIS 标准后来又被 ISO/IEC 采纳为国际标准。如今从 AWS IoT、Azure IoT Hub 到 Home Assistant、开源项目如 EMQX到处都能看到它的身影。最核心的三个角色MQTT 采用了一种被称为发布/订阅Publish/Subscribe的架构这和我们熟悉的 HTTP “请求/响应” 模式客户端问、服务器答有很大不同。它主要涉及三个角色发布者Publisher负责发送消息的设备。每个发布者只需要把消息发到一个“中间人”那里就行它不需要知道谁会收到这条消息也不关心有多少人会收到。订阅者Subscriber负责接收消息的设备。订阅者告诉“中间人”自己对哪类消息感兴趣然后当有这类消息到来时它就会收到通知。代理Broker这是 MQTT 的核心也就是那个“中间人”。它负责接收所有发布者的消息并根据订阅关系把消息准确地分发给所有订阅者。发布者和订阅者的角色并不是固定的。同一个设备完全可以既发布消息比如上报温度也订阅消息接收控制指令。这种设计带来了一个巨大的好处解耦。发布者和订阅者完全不需要知道彼此的存在也不需要同时在线。发布者可以把消息发给 Broker 就转身离开订阅者也可以等自己上线之后再去 Broker 取消息。这让系统变得非常灵活扩展起来也特别方便。Topic消息的“门牌号”Broker 怎么知道要把消息发给谁呢全靠Topic。Topic 是一个用斜杠分隔的字符串定义了一条消息属于哪个“主题”。例如home/livingroom/temperaturefactory/machine-01/statusvehicle/tesla/model3/battery订阅者可以订阅一个精确的 Topic比如只订阅home/livingroom/temperature。也可以使用通配符来订阅一批 Topic单层通配符。订阅home//temperature会收到home/bedroom/temperature和home/livingroom/temperature但不会收到home/livingroom/light/sensor。#多层通配符。订阅home/#会收到home/下的所有主题包括home/bedroom/temperature和home/bedroom/light/status。通过灵活设计 Topic 的层级结构你可以像设计文件目录一样清晰地组织成千上万个设备的消息。QoS可靠的代价物联网网络是出了名的不稳定。Wi-Fi 会断4G 信号会弱设备可能会突然掉电。MQTT 通过QoSQuality of Service服务质量等级来处理这个问题确保消息能可靠送达。QoS 分为三个等级QoS 0至多一次。消息发出去就不管了不管收没收到。像“实时股票行情”这种丢一两条也没关系的场景可以用它效率最高。QoS 1至少一次。Broker 和客户端会相互确认保证消息至少送达一次但可能重复送达。客户端需要自己处理重复消息。QoS 2恰好一次。通过两次请求-确认的握手确保消息既不丢也不重。这是最安全、但也最耗资源的方式适用于计费、指令等不允许出错的场景。

相关文章:

聊聊 MQTT:物联网的“普通话”

你有没有想过,智能家居里的设备之间是怎么“聊天”的?比如,温度传感器检测到室温过高,是怎么通知空调自动打开的?又或者,你的手机 APP 是怎么远程控制花园里的喷灌系统的?这些设备往往来自不同厂…...

基于轨迹跟踪的侧倾与曲率变化修正:Simulink与Carsim联合仿真技术探讨

轨迹跟踪,考虑侧倾和曲率变化,同时修正侧偏刚度 simulink carsim联合仿真半躺在工位椅子上盯着屏幕,手里的冰美式已经见底。显示器上Simulink模型里红红绿绿的信号线晃得眼睛发酸,CarSim可视化界面里那辆红色小车又在弯道表演灵魂…...

SwarmUI集成Teacache与Wan 2.1优化分布式渲染

1. 项目概述Teacache与Wan 2.1的集成是SwarmUI生态中一个颇具实用价值的优化方案。作为一名长期从事分布式系统开发的工程师,我发现这套组合能显著提升渲染任务的资源利用率和执行效率。本文将基于我在三个实际项目中的部署经验,详细拆解集成过程中的技术…...

ThinkPad黑苹果终极实战指南:让T480变身为macOS工作站的完整解决方案

ThinkPad黑苹果终极实战指南:让T480变身为macOS工作站的完整解决方案 【免费下载链接】t480-oc 💻 Lenovo ThinkPad T480 / T580 / X280 Hackintosh (macOS Monterey 12.x - Sequoia 15.x) - OpenCore 项目地址: https://gitcode.com/gh_mirrors/t4/t4…...

Kotlin 2.4.0-Beta2 发布,语法与多平台能力全线革新

前言 2026 年 4 月 22 日,JetBrains 发布 Kotlin 2.4.0-Beta2(EAP)。 相对 3 月底的 Beta1,这一版更像 “把 Beta1 画过的路线图往可 ship 状态再推一步”:语言里多了几条值得单独开编译开关试的能力,Nativ…...

从U盘到CAN:汽车ECU升级的“幕后英雄”与安全门道(以AUTOSAR为例)

从U盘到CAN:汽车ECU升级的“幕后英雄”与安全门道(以AUTOSAR为例) 当一辆智能汽车在4S店完成ECU软件升级时,很少有人会注意到诊断仪与车载CAN总线之间那些加密的数据包。这种看似简单的刷写操作背后,实则隐藏着汽车电子…...

多模态大语言模型推理能力提升:DRIFT方法解析

1. 多模态大语言模型的推理能力困境多模态大语言模型(MLLMs)近年来在视觉-语言联合理解方面取得了显著突破,能够完成图像描述生成、视觉问答等任务。然而,当我们深入测试这些模型在需要多步推理的场景(如数学解题、逻辑分析)时&am…...

【12.MyBatis源码剖析与架构实战】11.嵌套查询循环引⽤源码剖析

MyBatis 嵌套查询循环引用源码深度剖析(含流程图) 在 MyBatis 中,当两个实体相互引用(如 User ↔ Address),且双方都通过 <association> 的 select 属性配置了嵌套查询时,若没有特殊处理,查询时会发生无限递归,最终导致栈溢出。MyBatis 通过 一级缓存(localCa…...

自主编码框架解析:从AI编程助手到闭环开发系统

1. 项目概述&#xff1a;一个面向自主编码的智能开发框架最近在开源社区里&#xff0c;一个名为GantisStorm/autonomous-coding-harness的项目引起了我的注意。乍一看这个标题&#xff0c;它像是一个工具集或框架&#xff0c;核心关键词是“自主编码”。对于开发者而言&#xf…...

【12.MyBatis源码剖析与架构实战】10.嵌套查询映射源码剖析

MyBatis 嵌套查询映射源码深度剖析 嵌套查询映射(Nested Query Mapping)是 MyBatis 中通过 <association> 或 <collection> 元素的 select 属性,实现一个 SQL 查询的某列值作为参数,去执行另一个 SQL 查询,并将其结果填充到主对象的关联属性中。这可以避免使…...

10 分钟完成 OpenClaw 智能体 Windows 部署

OpenClaw&#xff08;小龙虾&#xff09;Windows 一键部署教程&#xff5c;10 分钟搭建你的数字员工&#xff08;2026 适配版&#xff09; 适配平台&#xff1a;Windows 10/11&#xff08;64 位&#xff09;&#xff5c;新手友好&#xff5c;全程可视化操作&#xff5c;无技术…...

LLM 模型架构:从GPT到Claude

LLM 模型架构&#xff1a;从GPT到Claude 1. 大型语言模型的发展历程 大型语言模型&#xff08;LLM&#xff09;的发展经历了从早期的统计语言模型到现代深度学习模型的演变过程。特别是自2017年Transformer架构提出以来&#xff0c;LLM的性能得到了质的飞跃。 1.1 早期语言模型…...

Flutter导航与路由完全指南:构建流畅的页面跳转

Flutter导航与路由完全指南&#xff1a;构建流畅的页面跳转 引言 在移动应用开发中&#xff0c;导航和路由是构建用户体验的重要组成部分。Flutter提供了强大的导航和路由系统&#xff0c;使我们能够创建流畅、直观的页面跳转体验。本文将深入探讨Flutter导航和路由的各种实现方…...

【20年IDE生态专家实测】:Copilot Next 工作流配置面试通关路径图——含YAML Schema校验、权限沙箱、Telemetry埋点3大权威验证项

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VS Code Copilot Next 自动化工作流配置面试全景概览 VS Code Copilot Next 并非独立产品&#xff0c;而是微软在 VS Code 1.90 版本中深度集成的 AI 编程增强套件&#xff0c;融合 GitHub Copilot Cha…...

CSS选择器完全指南:掌握样式的精准控制

CSS选择器完全指南&#xff1a;掌握样式的精准控制 引言 CSS选择器是CSS的核心组成部分&#xff0c;它决定了哪些HTML元素会被应用特定的样式。掌握CSS选择器对于编写高效、可维护的样式代码至关重要。本文将深入探讨CSS选择器的各种类型、使用方法以及最佳实践&#xff0c;帮助…...

300+ RPG Maker MV/MZ插件完全指南:免费打造专业级游戏的终极解决方案

300 RPG Maker MV/MZ插件完全指南&#xff1a;免费打造专业级游戏的终极解决方案 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV 在RPG Maker游戏开发中&#xff0c;你是否常常感到…...

CherryUSB轻量级协议栈在嵌入式开发中的应用

1. CherryUSB嵌入式USB协议栈概述在嵌入式系统开发中&#xff0c;USB接口因其即插即用、高带宽和供电能力等特性&#xff0c;已成为连接外设的首选方案之一。然而传统的USB协议栈往往存在资源占用大、移植困难等问题&#xff0c;特别是对于资源受限的MCU平台。CherryUSB作为一款…...

《文字定律》(1.3 1.4 文字定律 文字公理在现实中的作用表现)

1.3第三章 文字定律&#xff0c;文字公理在现实中的作用表现1.3.1第一节 文字定律在系统层面的表现文字是文明的底层物理公理——是所有人共同认同的公道与准则。就像物理学有永恒的公理&#xff1a;Fma、万有引力、能量守恒&#xff0c;这些公理在&#xff0c;世界就按规律运…...

多项式优化中的稀疏性与对称性方法解析

1. 多项式优化基础与挑战多项式优化问题(POP)在控制理论、量子信息、组合优化等领域有着广泛应用。这类问题的标准形式可以表示为&#xff1a;minimize f(x) subject to g_i(x) ≥ 0, i 1,...,m h_j(x) 0, j 1,...,p其中f, g_i, h_j都是多元多项式。传统求解方法面临两个主要…...

LeetCode 二分图判定题解

LeetCode 二分图判定题解 题目描述 二分图是一种特殊的图&#xff0c;它的顶点可以被分为两个不相交的集合&#xff0c;使得图中的每条边都连接不同集合中的顶点。 示例&#xff1a; 对于以下图&#xff1a;A -- B| |C -- D这是一个二分图&#xff0c;因为可以将顶点分为两个…...

python开发|yaml用法知识介绍

随着互联网技术的快速发展,服务器编程变得越来越重要。Python作为一种强大的编程语言,越来越受到开发者的青睐。而PyYAML则是Python中最常用的YAML格式解析器之一,本文将系统介绍yaml知识 01yaml介绍 YAML(YAML Aint Markup Language)是一种直观的数据序列化格式,它旨在以…...

华强北冲出狠角色!靠储能狂揽36亿,冷门生意爆火全球

为什么国内卖不动的产品&#xff0c;出海反而能年销36亿&#xff1f;本文深度拆解华强北"狠角色"Jackery&#xff08;电小二&#xff09;的出海神话。从"需求错位"到"场景化种草"&#xff0c;揭秘便携储能如何在欧美成为家庭标配。详解其TikTok&…...

2026届必备的五大降重复率网站实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于内容创作进程里&#xff0c;若打算切实降低AIGC&#xff08;人工智能生成内容&#xff09…...

泛微Ecology9远程调试实战:从Resin4配置到IDEA断点,安全测试环境一步到位

泛微Ecology9深度调试指南&#xff1a;构建安全高效的远程开发环境 当工作流Action突然抛出NullPointerException时&#xff0c;你是否还在用System.out.println逐行打印日志&#xff1f;作为经历过三次重大版本升级的泛微二次开发工程师&#xff0c;我总结出一套"外科手术…...

lvgl_v8.1版本之自定义bar绘画事件修复官方demo代码示例

static void set_value(void* bar, int32_t v) {lv_bar_set_value(bar, v, LV_ANIM_OFF)</...

量子操作与完全正性:量子信息处理的核心原理

1. 量子操作与完全正性的物理内涵量子操作是描述量子系统状态演化的数学工具&#xff0c;它从根本上定义了量子态如何在时间维度上进行变换。在量子信息处理中&#xff0c;无论是量子计算、量子通信还是量子纠错&#xff0c;量子操作都扮演着核心角色。理解量子操作的本质特性&…...

Raycast插件开发实战:本地数据解析与Cursor成本监控实现

1. 项目概述&#xff1a;一个为Raycast设计的Cursor成本监控插件如果你和我一样&#xff0c;日常重度依赖Cursor作为主力代码编辑器&#xff0c;同时又是一个Raycast的忠实用户&#xff0c;那么你很可能也面临过同样的困扰&#xff1a;Cursor的AI功能&#xff08;特别是其集成的…...

告别手动刷新:闲鱼智能监控系统帮你5分钟搭建自动化淘货助手

告别手动刷新&#xff1a;闲鱼智能监控系统帮你5分钟搭建自动化淘货助手 【免费下载链接】idlefish_xianyu_spider-crawler-sender 闲鱼自动抓取/筛选/发送系统&#xff0c;xianyu spider crawler blablabla 项目地址: https://gitcode.com/gh_mirrors/id/idlefish_xianyu_sp…...

灰色网络深度揭秘:暗网真实生态与安全风险全面解析

1. Hack Forums&#xff1a;不止是技术&#xff0c;更是“灰色地带”的狂欢&#xff1f; 这个2005年就成立的老牌论坛&#xff0c;与其说是“黑客技术交流”&#xff0c;不如说是网络安全灰色地带的缩影。从渗透测试到社工&#xff0c;啥都有&#xff0c;甚至还有交易区…别告…...

NVIDIA AI Workbench:企业级AI开发与部署新范式

1. NVIDIA AI Workbench 深度解析&#xff1a;企业级AI工作流新范式NVIDIA AI Workbench的beta版本发布标志着企业AI开发流程的一次重大革新。作为一名长期从事AI落地的技术架构师&#xff0c;我亲身体验了这套工具如何从根本上改变我们构建和部署AI项目的方式。不同于传统的碎…...