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

MQTT(消息队列遥测传输)

MQTTMessage Queuing Telemetry Transport消息队列遥测传输协议是一种轻量级、基于发布/订阅模式的消息传输协议专为受限设备、低带宽、高延迟、不稳定网络的物联网通信设计的。MQTT诞生于1999年目的是用最小的网络带宽和代码量将石油管道上的传感器数据传回控制中心。2014年MQTT正式成为OASIS标准2016年升级为ISO/IEC 国际标准。核心定位设计目标极简、开销小、省电、可靠运行在TCP/IP之上也可跑在 UDPMQTT-SN不是消息队列MQ而是消息传输协议物联网 / IoT 事实上的标准协议核心特点轻量高效协议头最小仅为2字节远低于HTTP等文本协议非常适合低带宽、高延迟或不稳定的网络。发布/订阅模式发送者发布者和接收者订阅者通过一个中间人代理Broker沟通彼此不需要知道对方的存在实现了空间、时间、同步上的完全解耦。三种服务质量QoSQoS 0至多一次发送即忘消息可能丢失。适用于不重要的数据。QoS 1至少一次保证送达但可能重复。QoS 2恰好一次通过复杂的握手保证消息不重不漏。最可靠但开销最大。最后遗嘱当设备异常断线时Broker可以自动向所有订阅者发送一条预设的“遗嘱消息”告知大家该设备已掉线。持久会话客户端断线重连后Broker会记住该客户端的订阅关系并补发离线期间错过的消息需配合QoS 1或2。工作原理Broker代理服务器是整个系统的核心负责接收所有消息并根据主题进行过滤和分发。Publisher发布者发送消息到Broker上的某个主题如home/livingroom/temperature。Subscriber订阅者向Broker订阅自己关心的主题可使用通配符如home//temperature订阅所有房间的温度。消息包含主题和负载Payload即实际数据格式透明可以是JSON、二进制等。流程示例手机App订阅主题alert/fire。烟雾传感器检测到火情发布一条消息到alert/fire负载为{ location: kitchen }。Broker收到消息后立即推送给所有订阅了alert/fire的手机App。典型应用场景MQTT最广为人知的应用是物联网但实际上它的应用范围更广物联网/车联网传感器数据上报、远程控制智能灯泡/插座、车辆状态追踪。移动应用即时通讯如Facebook Messenger早期曾使用、消息推送。能源行业石油管道、电网、水表的远程监控。工业自动化SCADA系统、PLC数据采集。智慧家居小米、Home Assistant等智能家居平台的核心协议。常用实现BrokerEMQX企业级开源支持大规模连接千万级性能强悍。MosquittoEclipse基金会项目轻量简单适合嵌入式或个人测试。VerneMQ、HiveMQ、NanoMQ面向边缘计算。客户端库几乎支持所有主流语言Python的paho-mqtt、JavaScript的mqtt.js、Go的paho.golang等。安全性考量原生MQTT安全能力较弱生产环境通常需要叠加安全措施传输加密使用TLS/SSL即MQTT over TLS通常端口8883替代明文的1883端口。身份认证用户名/密码、JWT Token、或通过TLS客户端证书进行认证。授权通过插件或规则限制客户端对特定主题的发布/订阅权限。安全建议不要使用默认配置禁用匿名访问定期更新Broker版本。与HTTP的对比维度MQTTHTTP协议模型发布/订阅异步请求/响应同步消息头大小最小2字节通常几百字节通信方向双向Broker可主动推单向客户端必须请求服务质量内置3个等级依赖底层TCP相当于QoS 0典型场景IoT、实时推送网页浏览、REST API

相关文章:

MQTT(消息队列遥测传输)

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种轻量级、基于发布/订阅模式的消息传输协议,专为受限设备、低带宽、高延迟、不稳定网络的物联网通信设计的。MQTT诞生于1999年,目的是用最小的网…...

Bloaty二进制大小分析器:10个常见问题解决技巧

Bloaty二进制大小分析器:10个常见问题解决技巧 【免费下载链接】bloaty Bloaty: a size profiler for binaries 项目地址: https://gitcode.com/gh_mirrors/bl/bloaty Bloaty是一款强大的二进制大小分析工具,能够帮助开发者深入了解二进制文件的大…...

如何实现Archery复杂SQL审核表单的分步提交与智能验证:完整指南

如何实现Archery复杂SQL审核表单的分步提交与智能验证:完整指南 【免费下载链接】Archery SQL 审核查询平台 项目地址: https://gitcode.com/gh_mirrors/ar/Archery Archery作为一款专业的SQL审核查询平台,其前端表单设计采用了先进的分步提交与智…...

终极指南:如何使用Consul实现HyperLPR车牌识别服务的微服务化改造

终极指南:如何使用Consul实现HyperLPR车牌识别服务的微服务化改造 【免费下载链接】HyperLPR High Performance Chinese License Plate Recognition Framework. 项目地址: https://gitcode.com/gh_mirrors/hy/HyperLPR HyperLPR作为高性能的中文车牌识别框架…...

C#图像金字塔:3个关键技巧,让图像识别从“卡顿“变“闪电“!

🔥关注墨瑾轩,带你探索编程的奥秘!🚀 🔥超萌技术攻略,轻松晋级编程高手🚀 🔥技术宝库已备好,就等你来挖掘🚀 🔥订阅墨瑾轩,智趣学习不…...

OpenClaw开源贡献:为SecGPT-14B开发检测插件全流程

OpenClaw开源贡献:为SecGPT-14B开发检测插件全流程 1. 为什么选择OpenClaw开发安全检测插件 去年冬天,当我第一次在本地部署SecGPT-14B模型时,就意识到这个专精网络安全领域的模型需要更贴近实际工作场景的交互方式。作为长期从事渗透测试的…...

【回眸】系统读书笔记(十)盘点调动资源

目录 前言 资源盘点可以帮你创造选择 三类人生资源 直接价值资源 知识技能类:认知储备和实操能力、学科知识、行业认知、上手操作的技能 记录行为和结果:干成过什么、搞定过什么、负责过什么? 能力逆向推导:把行为翻译成资源…...

OpenClaw学术研究助手:Qwen3-14b_int4_awq自动生成文献综述

OpenClaw学术研究助手:Qwen3-14b_int4_awq自动生成文献综述 1. 为什么需要AI辅助文献调研 作为一名计算机视觉方向的研究生,我每周需要阅读数十篇论文来跟踪领域进展。传统文献调研方式存在几个痛点:首先,手动下载和整理PDF文件…...

SagerNet数据库架构完全指南:Room与DataStore在代理工具中的最佳实践

SagerNet数据库架构完全指南:Room与DataStore在代理工具中的最佳实践 SagerNet作为Android平台上的通用代理工具链,其强大的数据库架构设计是其核心竞争力的关键。通过深入分析SagerNet的Room数据库与DataStore的完美结合,我们可以了解现代A…...

告别回调地狱:PromiseKit函数式三剑客拯救异步代码

告别回调地狱:PromiseKit函数式三剑客拯救异步代码 【免费下载链接】PromiseKit Promises for Swift & ObjC. 项目地址: https://gitcode.com/gh_mirrors/pr/PromiseKit PromiseKit 是 Swift 和 Objective-C 开发者的异步编程救星,它通过优雅…...

Seesaw v2测试工具终极指南:4大核心工具详解与实战

Seesaw v2测试工具终极指南:4大核心工具详解与实战 【免费下载链接】seesaw Seesaw v2 is a Linux Virtual Server (LVS) based load balancing platform. 项目地址: https://gitcode.com/gh_mirrors/see/seesaw Seesaw v2是基于Linux Virtual Server (LVS)的…...

终极QOR监控和日志指南:保障企业应用稳定运行的完整方案

终极QOR监控和日志指南:保障企业应用稳定运行的完整方案 【免费下载链接】qor QOR is a set of libraries written in Go that abstracts common features needed for business applications, CMSs, and E-commerce systems. 项目地址: https://gitcode.com/gh_mi…...

手把手玩转三相SPWM逆变器

三相电压型SPWM逆变器控制设计及应用(原理图工程源代码工 10067-三相电压型SPWM逆变器控制设计及应用(原理图工程源代码工程仿真工程详细说明书PPT) 随着国家电网的发展,国明对于电网的使用要求越来越高,并且家家户户均…...

gte-base-zh WebUI安全加固:禁用CORS、关闭Swagger UI、限制Referer白名单

gte-base-zh WebUI安全加固:禁用CORS、关闭Swagger UI、限制Referer白名单 重要提示:本文介绍的安全加固方案适用于生产环境部署,可有效防止未授权访问和数据泄露风险。 1. 为什么需要WebUI安全加固 当你使用xinference部署gte-base-zh embe…...

NideShop物流配送系统:如何实现订单发货与快递跟踪的完美集成

NideShop物流配送系统:如何实现订单发货与快递跟踪的完美集成 【免费下载链接】nideshop NideShop 开源微信小程序商城服务端 API(Node.js ThinkJS) 项目地址: https://gitcode.com/gh_mirrors/ni/nideshop NideShop是一个基于Node.j…...

终极指南:Permify权限计算优化如何避免深度递归陷阱

终极指南:Permify权限计算优化如何避免深度递归陷阱 【免费下载链接】permify An open-source authorization as a service inspired by Google Zanzibar, designed to build and manage fine-grained and scalable authorization systems for any application. — …...

7个Live-Charts单元测试实战技巧:确保图表组件稳定运行的完整指南

7个Live-Charts单元测试实战技巧:确保图表组件稳定运行的完整指南 【免费下载链接】Live-Charts Simple, flexible, interactive & powerful charts, maps and gauges for .Net 项目地址: https://gitcode.com/gh_mirrors/li/Live-Charts Live-Charts是一…...

图灵奖得主杨立昆公开“手撕”Meta 内部环境:“LLM 吸光了房间里的空气”,物理世界才是 AGI 的终局

来源:AI 科技大本营(ID:rgznai100)编译:王启隆Sora 死后,生成式视频路线已到头。2026 年 3 月,在新德里的 AI Alliance Global Leadership Reception 上,Christopher Nguyen 邀请到杨…...

探索R语言中的数据处理:序列统计

在数据分析中,我们经常需要处理复杂的顺序数据,例如测试的时间序列。在本篇博客中,我们将探讨如何使用R语言来处理一个特定的问题:统计四种测试(Test 1到Test 4)在不同顺序下的执行频率。 问题描述 假设我们有一个研究数据框,其中包含四种测试的日期,这些测试可以以任…...

如何用PeerDB构建企业级数据管道:从配置到监控的完整教程

如何用PeerDB构建企业级数据管道:从配置到监控的完整教程 【免费下载链接】peerdb Fast, Simple and a cost effective tool to replicate data from Postgres to Data Warehouses, Queues and Storage 项目地址: https://gitcode.com/gh_mirrors/pe/peerdb …...

SwiftData中的级联删除关系

在开发iOS应用程序时,数据模型的设计和管理至关重要。SwiftData是Apple在WWDC 2023上推出的新框架,旨在简化数据模型的创建和操作。今天,我们来探讨一下如何在SwiftData中实现级联删除关系。 什么是级联删除? 级联删除是一种数据库关系模型中的操作规则,当一个主记录被删…...

Lux测试框架完整指南:如何编写高效的数据可视化测试用例

Lux测试框架完整指南:如何编写高效的数据可视化测试用例 【免费下载链接】lux Automatically visualize your pandas dataframe via a single print! 📊 💡 项目地址: https://gitcode.com/gh_mirrors/lux/lux Lux是一个强大的Python数…...

PyJWT与云原生应用集成的终极指南:如何构建安全的微服务架构

PyJWT与云原生应用集成的终极指南:如何构建安全的微服务架构 【免费下载链接】pyjwt JSON Web Token implementation in Python 项目地址: https://gitcode.com/gh_mirrors/py/pyjwt PyJWT(Python JSON Web Token)是一个功能强大且易于…...

**遗传算法在路径优化中的创新应用:从理论到Python实战**在智能优化领域,**遗传算法(Genetic A

遗传算法在路径优化中的创新应用:从理论到Python实战 在智能优化领域,遗传算法(Genetic Algorithm, GA) 凭借其强大的全局搜索能力和对复杂问题的适应性,成为解决组合优化问题的重要工具。本文将深入探讨如何使用 Pyth…...

如何构建现代化博客系统:从Markdown到动态页面的完整指南

如何构建现代化博客系统:从Markdown到动态页面的完整指南 【免费下载链接】skateshop An open source e-commerce skateshop build with everything new in Next.js. 项目地址: https://gitcode.com/gh_mirrors/sk/skateshop 在当今数字化时代,拥…...

终极指南:LLMLingua JSON数据压缩与字段级定制策略

终极指南:LLMLingua JSON数据压缩与字段级定制策略 【免费下载链接】LLMLingua [EMNLP23, ACL24] To speed up LLMs inference and enhance LLMs perceive of key information, compress the prompt and KV-Cache, which achieves up to 20x compression with minim…...

终极指南:深入理解Wing语言Preflight和Inflight执行阶段

终极指南:深入理解Wing语言Preflight和Inflight执行阶段 【免费下载链接】wing A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡ 项目地址: https://gitcode.com/gh_mi…...

万字长文带你深入Redis底层数据结构

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

终极指南:PDFMiner XML输出如何高效提取结构化数据

终极指南:PDFMiner XML输出如何高效提取结构化数据 【免费下载链接】pdfminer Python PDF Parser (Not actively maintained). Check out pdfminer.six. 项目地址: https://gitcode.com/gh_mirrors/pd/pdfminer PDFMiner是一个强大的Python PDF解析库&#x…...

Redis中有事务吗?有何不同?

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...