MQTT 协议概述

【MQTT协议详解】MQTT协议 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于 **发布/订阅** 范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。 *简而言之,MQTT其实就是一个用于TCP通信的消息协议而已。既然消息协议,"消息" 自然是表示MQTT其实本质就是消息,消息在某种理解上,可以理解报文,报文包,数据等等;既然是协议,自然表示它有着自己的规则,什么叫规则?就是规定这个消息该以怎样的**........ 阅读详情
AI摘要

本文详细介绍了MQTT协议,它是基于发布/订阅模式的轻量级通讯协议,适用于低带宽网络。阐述了协议模型的组成部分、客户端和服务器功能,介绍了通信过程,包括连接、订阅、发布、取消订阅和断开连接,还说明了数据包结构,并借助工具进行了示例演示。


一、概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布,并于 2013 年发布为开放标准。MQTT 协议专注于在低带宽、不稳定或高延迟的网络环境中,可靠地传输小型数据包。

MQTT协议具有以下特点:

  • 轻量级:MQTT 的协议开销小,适用于资源受限的设备,如传感器、物联网设备等。
  • 灵活和可扩展:MQTT 支持多种传输层协议,如 TCP/IP、WebSocket 等。它还提供了 QoS(Quality of Service)级别,以确保消息的可靠传输。
  • 异步通信:MQTT 使用发布/订阅模型,发布者和订阅者之间不需要直接通信,使得系统的解耦更容易。
  • 处理低带宽和高延迟网络:MQTT 协议可以在网络连接不稳定或带宽有限的环境中可靠地传输数据。

二、协议模型

1、组成部分

MQTT 协议基于 TCP/IP 协议,通常在应用层上使用,通过客户端和服务端之间的发布/订阅模型进行通信。它有以下几个主要组成部分:

  • Broker(代理服务器):是 MQTT 网络中的中间件,负责接收来自客户端的消息,并将消息路由到符合订阅条件的客户端。Broker 还负责维护客户端的连接状态。
  • Publisher(发布者):是发送消息的 MQTT 客户端。发布者将消息发送到 Broker,并指定一个或多个主题(Topic)。
  • Subscriber(订阅者):是接收消息的 MQTT 客户端。订阅者通过向 Broker 订阅一个或多个主题,以接收与这些主题相关的消息。
  • Topic(主题):是消息的类别或标签,用于将发布者的消息与订阅者的接收行为关联起来。主题由一个或多个层级组成,可以使用通配符进行匹配。

2、客户端

MQTT 客户端可以是发布者或订阅者,用于发送或接收消息。MQTT 客户端可以运行在各种设备上,如传感器、嵌入式设备、服务器等。它们通过与 MQTT 服务端建立连接进行通信。

MQTT 客户端具有如下功能:

  • 发布消息给其它相关的客户端。
  • 订阅主题请求接收相关的应用消息。
  • 取消订阅主题请求移除接收应用消息。
  • 从服务端终止连接。

3、服务器

MQTT 服务器负责接收来自客户端的消息,并将消息路由到符合订阅条件的客户端。它还负责维护客户端的连接状态。MQTT 服务器通常运行在一个可靠的服务器上,并提供消息的持久化存储、安全认证、订阅管理等功能。

MQTT 服务器具有如下功能:

  • 接受来自客户端的网络连接请求。
  • 接受客户端发布的应用消息。
  • 处理客户端的订阅和取消订阅请求。
  • 转发应用消息给符合条件的已订阅客户端(包括发布者自身)。

三、MATT 通信过程

MQTT 使用的发布/订阅消息模式,它提供了一对多的消息分发机制,从而实现与应用程序的解耦。这是一种消息传递模式,消息不是直接从发送器发送到接收器(即点对点),而是由 MQTT Broker 分发的。

1、连接服务器

客户端到服务器的网络连接建立后,客户端发送给服务器的第一个报文必须是 CONNECT 报文

在一个网络连接上,客户端只能发送一次 CONNECT 报文,如果出现第二个 CONNECT 报文,按照协议标准,服务器会将第二个CONNECT 报文当作协议违规处理并断开客户端的连接。

对于正常的连接请求,服务器必须产生应答报文,如果无法建立会话,服务器应该在应答报文中报告对应的错误代码。

2、订阅主题

MQTT 客户端可以订阅一个或多个主题,以接收与这些主题相关的消息。订阅的客户端被称为订阅者。

订阅消息的过程如下:

  • 客户端与 MQTT 服务端建立连接。
  • 客户端使用指定的主题进行订阅。
  • MQTT 服务端将订阅信息保存,并等待有与所订阅主题相关的消息到达。
  • 当有新的消息发布到与订阅主题匹配的主题上时,MQTT 服务端将消息路由给订阅者。
  • 订阅者接收到消息,并进行相应的处理。

在 MQTT 中,主题(Topic)扮演着重要的角色。主题是一个用于标识消息类型或内容的字符串,如"weather/temperature"、"home/lights"等。订阅者可以通过使用通配符进行模糊匹配来订阅多个相关主题,如"weather/+"表示订阅以"weather/“开头的所有主题,”+"代表一个层级的通配符。

SUBSCRIBE 为每个订阅指定了最大的 QoS 等级,服务器根据这些信息分发应用消息给客户端。

SUBSCRIBE 报文拥有固定报头、可变报头、有效载荷。

当服务器收到客户端发送的一个 SUBSCRIBE 报文时,必须向客户端发送一个 SUBACK 报文响应,同时 SUBACK 报文必须和等待确认的SUBSCRIBE 报文有相同的报文标识符。

如果服务器收到一个 SUBSCRIBE 报文,报文的主题过滤器与一个现存订阅的主题过滤器相同,那么必须使用新的订阅彻底替换现存的订阅。新订阅的主题过滤器和之前订阅的相同,但是它的最大 QoS 值可以不同。与这个主题过滤器匹配的任何现存的保留消息必须被重发,但是发布流程不能中断。

3、发布消息

MQTT 客户端可以发布消息到 MQTT 服务端(当然,从服务器分发的报文给订阅者,也是属于 PUBLISH 控制报文。),通过指定一个或多个主题来标识消息的类型或内容。发布的消息可以是任意格式的数据,如文本、二进制数据等。发布消息的客户端被称为发布者(Publisher)。

发布消息的过程如下:

  • 客户端与 MQTT 服务端建立连接。
  • 客户端使用指定的主题和内容发布消息。
  • MQTT 服务端接收到消息后,将消息路由给符合订阅条件的订阅者(Subscriber)。
  • 订阅者接收到与其订阅主题相关的消息。

这里了解一个概念:QoS(Quality of Service levels,服务质量):

服务质量是 MQTT 的一个重要特性。当我们使用 TCP/IP 时,连接已经在一定程度上受到保护。但是在无线网络中,中断和干扰很频繁,MQTT 在这里帮助避免信息丢失及其服务质量水平。这些级别在发布时使用。

  • 如果客户端发布到 MQTT 服务器,则客户端将是发送者,MQTT 服务器将是接收者。
  • 当 MQTT 服务器向客户端发布消息时,服务器是发送者,客户端是接收者。

QoS 有三个等级:

  1. QoS 0:这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络。即:<=1

在这里插入图片描述

  1. QoS 1:QoS 1 承诺消息将至少传送一次给订阅者。

在这里插入图片描述

  1. QoS 2:使用 QoS 2,我们保证消息仅传送到目的地一次。为此,带有唯一消息 ID 的消息会存储两次,首先来自发送者,然后是接收者。QoS 级别 2 在网络中具有最高的开销,因为在发送方和接收方之间需要两个流。

4、取消订阅

客户端发送 UNSUBSCRIBE 报文给服务器,用于取消订阅主题。

UNSUBSCRIBE 报文固定报头的第 3,2,1,0 位是保留位且必须分别设置为 0,0,1,0。否则服务器必须认为任何其它的值都是不合法的并关闭网络连。具体的描述可以看协议文档。

UNSUBSCRIBE 报文的有效载荷包含客户端想要取消订阅的主题过滤器列表。UNSUBSCRIBE 报文中的主题过滤器必须是连续打包的 UTF-8 编码字符串。

UNSUBSCRIBE 报文的有效载荷必须至少包含一个主题过滤器列表,而且这个主题过滤器是已经被客户端订阅的,否则的话没有订阅也就没有取消订阅一说了。如果一个 UNSUBSCRIBE 报文没有有效载荷是违反协议的标准的,服务器也不会去处理它。

而对于服务器删除了一个订阅,那么它将不会再分发该主题的消息到这个客户端中。而且它必须完成分发任何已经开始往客户端发送的QoS1 和 QoS2 的消息,以保证消息的服务质量。

然后服务器必须发送 UNSUBACK 报文来响应客户端的 UNSUBSCRIBE 请求。UNSUBACK 报文必须包含和 UNSUBSCRIBE 报文相同的报文标识符。即使没有删除任何主题订阅(客户端取消订阅的主题未被订阅),服务器也必须发送一个 UNSUBACK 响应。

5、断开连接

DISCONNECT 报文是客户端发给服务端的最后一个控制报文。表示客户端正常断开连接。

DISCONNECT 报文的固定报头保留位必须全为 0。

客户端发送 DISCONNECT 报文之后必须关闭网络连接,不能通过那个网络连接再发送任何控制报文。

服务端在收到 DISCONNECT 报文时必须丢弃任何与当前连接关联的未发布的遗嘱消息。而且当客户端没有关闭网络连接的时候服务器应该主动去关闭网络连接。

四、MQTT 数据包结构

  • 固定头(Fixed header),存在于所有 MQTT 数据包中,表示数据包类型及数据包的分组类标识;
  • 可变头(Variable header),存在于部分 MQTT 数据包中,数据包类型决定了可变头是否存在及其具体内容;
  • 消息体(Payload),存在于部分 MQTT 数据包中,表示客户端收到的具体内容;

整体 MQTT 的消息格式如下图所示;

1、MQTT 固定头

固定头存在于所有 MQTT 数据包中,其结构如下:

其中,MQTT 消息类型是一个 4 位的无符号值,类型如下:

名称值流方向描述
Reserved0不可用保留位
CONNECT1客户端到服务器客户端请求连接到服务器
CONNACK2服务器到客户端连接确认
PUBLISH3双向发布消息
PUBACK4双向发布确认
PUBREC5双向发布收到(保证第1部分到达)
PUBREL6双向发布释放(保证第2部分到达)
PUBCOMP7双向发布完成(保证第3部分到达)
SUBSCRIBE8客户端到服务器客户端请求订阅
SUBACK9服务器到客户端订阅确认
UNSUBSCRIBE10客户端到服务器请求取消订阅
UNSUBACK11服务器到客户端取消订阅确认
PINGREQ12客户端到服务器PING请求
PINGRESP13服务器到客户端PING应答
DISCONNECT14客户端到服务器中断连接
Reserved15不可用保留位

标识位(DUP):在不使用标识位的消息类型中,标识位被作为保留位。如果收到无效的标志时,接收端必须关闭网络连接:

数据包标识位Bit 3Bit 2Bit 1Bit 0
CONNECT保留位0000
CONNACK保留位0000
PUBLISHMQTT 3.1.1 使用DUP1QoS2QoS2RETAIN3
PUBACK保留位0000
PUBREC保留位0000
PUBREL保留位0000
PUBCOMP保留位0000
SUBSCRIBE保留位0000
SUBACK保留位0000
UNSUBSCRIBE保留位0000
UNSUBACK保留位0000
PINGREQ保留位0000
PINGRESP保留位0000
DISCONNECT保留位0000

QoS:发布消息的服务质量(前面已经做过介绍),即:保证消息传递的次数
- 00:最多一次,即:<=1
- 01:至少一次,即:>=1
- 10:一次,即:=1
- 11:预留

RETAIN:发布保留标识,表示服务器要保留这次推送的信息,如果有新的订阅者出现,就把这消息推送给它,如果设有那么推送至当前订阅者后释放。

2、MQTT 可变头

MQTT 数据包中包含一个可变头,它驻位于固定的头和负载之间。可变头的内容因数据包类型而不同,较常的应用是做为包的标识:

Bit7 — 0
byte 1包标签符(MSB)
byte 2…包标签符(LSB)

很多类型数据包中都包括一个 2 字节的数据包标识字段,这些类型的包有:PUBLISH (QoS > 0)、PUBACK、PUBREC、PUBREL、PUBCOMP、SUBSCRIBE、SUBACK、UNSUBSCRIBE、UNSUBACK2.3。

3. Payload消息体

Payload 消息体是 MQTT 数据包的第三部分,有 CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE 四种类型的消息:

  • CONNECT,消息体内容主要是:客户端的 ClientID、订阅的 Topic、Message 以及用户名和密码
  • SUBSCRIBE,消息体内容是一系列的要订阅的主题以及 QoS。
  • SUBACK,消息体内容是服务器对于 SUBSCRIBE 所申请的主题及 QoS 进行确认和回复。
  • UNSUBSCRIBE,消息体内容是要订阅的主题。

五、示例演示

上文简单讲了一下 MQTT 协议,下面借助 MQTTX 和 MQTT.FX 工具来演示一下 MQTT 的工作。

首先在 MQTTX 上新建一个服务器,这里的地址就使用工具免费的测试地址就可以。为了简便,这里就不设置用户密码了。

然后在 MQTT.FX 配置好客户端:

连接成功:

然后订阅主题:

可以看到,当服务器发布一个消息的时候,客户端收到了相应的消息:


同理,现在让服务器订阅客户端的主题:

服务器也能收到相应的消息:

netty实现mtqq_Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上 前言诞生及优势MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道。目标是拥有一个带宽有效且使用很少电池电量的协议,因为这些设备是通过卫星链路连接的,当时这种设备非常昂贵。与HTTP及其请求/响应范例相比,该协议使用发布/订阅体系结构。发布/订阅是事件驱动的,可以将消息推送到... 阅读详情

相关推荐

【TCP/IP】基于TCP协议的MQTT协议概述以及简单的Java代码示例

一、MQTT MQTT协议是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的

李大有的博客 3105

【MQTT】MQTT简介+安装+使用

MQTT 协议简介 MQTT(Message Queuing Telemetry Transport),是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。 MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。 ...

我的笔记本 6万+

两种MQTT协议可视化调试工具

两种MQTT协议可视化调试工具 一、MQTT技术背景 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一个基于客户端-服务器的消息发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上 ,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开...

Huangxiang6的博客 4万+

MQTT协议详解(完整版)

MQTT

jackwmj12的博客 19万+

MQTT工作笔记0001---MQTT协议概述

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152 一共是这些内容 在阿里云上有对MQTT协议的介绍 实际上就是发布订阅的意思,比如海创电子关注了工控老鬼,那么工控老鬼发布消息,海创电子就能收到, 但是由于海创电子没有关注工控老鬼,所以海创电子发布消息的时候,工控老鬼就收不到. 上面就描述了海创电子关注工控老鬼,工控老鬼没有关注海创电子的情况 那么如果海创电子和挨踢在加班互相关注了呢,就可以互相发消息都可以收到了

添柴程序猿的专栏 3501

工业自动化中气动夹爪选型、调试与维护全流程实战解析

在工业自动化领域,气动执行元件是实现精准抓取与搬运的基础。其工作原理是通过压缩空气驱动气缸,转化为直线或旋转运动,从而控制夹爪的开合。这类技术因其结构简单、响应快速、成本低廉及维护方便,在自动化产线中具有极高的技术价值,是实现高效、可靠物料搬运的核心单元。其典型应用场景涵盖电子装配、汽车制造、食品包装等行业的上下料、分拣与定位工序。本文以工业自动化中常见的二指平行气动夹爪(常被工程师代号化为“Gripper-A”)为例,深入剖析其从硬件选型、气动系统集成到程序逻辑联锁的完整工程实践。内容聚焦于夹持力计算中惯

weixin_42629671的博客 364

MQTT协议详解及开发教程(一)MQTT协议概述

推荐一款稳定的基于C编写的MQTT Client开源库《cMQTT》 一概述 MQTT协议目前在物联网技术中应用非常广泛,各种公有云的IOT平台通信基本上都是按照该协议来实现的,这里先简单的做个总结: (1)MQTT协议框架及内容比较标准,可以认为是“物联网行业的Modbus协议”。 (2)不同厂家的MQTT服务器或客户端在通信层面是完全一致的,只有业务数据不同而已。这也就意味着,如果知道client ID 、password、payload格式,那么任何的 ...

猪哥的专栏 8137

Python接口自动化测试实战:Requests+Pytest+Excel+Allure框架搭建指南

接口自动化测试是现代软件工程中保障软件质量的关键实践,其核心原理是通过脚本模拟客户端请求,自动验证API的功能、性能和可靠性。在Python技术栈中,Requests库以其简洁的API成为处理HTTP请求的基石,而Pytest框架则凭借其灵活的Fixture机制和强大的参数化功能,为测试用例的组织与执行提供了优雅的解决方案。结合Excel进行数据驱动测试,能够有效实现测试数据与脚本逻辑的分离,提升协作效率;最终通过Allure生成可视化测试报告,清晰呈现测试结果与过程。这套技术组合(Requests, Py

weixin_28677451的博客 304

MQTT协议概述

概述 MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器之间通信的桥梁。 MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议。有以下特点: 使用发布/订...

weixin_33836874的博客 420

基于任务的功能磁共振成像的连接性分析

虽然这种方法通过减少偶然只选择特异性代表的可能性来改善可推广性,但类别内和类别间的变异性变得更难控制(例如,"鸟类"可能是一个比"车辆"更加/不那么同质的类别),并且可能会出现关于这些预定义类别是否是现实世界实体的有意义划分的担忧——尽管这个限制在某种程度上可以通过表征相似性分析来解决。特别是,海马单变量激活和语义认知区域(左下额回)中语义信息的表征强度之间的交互预测了项目的概念记忆,而海马单变量激活和视觉处理区域(腹内侧枕叶皮层)中视觉属性的表征强度之间的交互预测了图像样本的知觉记忆。

cc1609130201的博客 2228

Cadence ADE实战:1GHz VCO相位噪声仿真全流程(附PSS/Pnoise避坑指南)

本文详细介绍了在Cadence ADE环境中对1GHz VCO进行相位噪声仿真的完整流程。重点剖析了PSS(周期性稳态分析)和Pnoise(周期性噪声分析)两大核心引擎的关键参数设置与避坑指南,帮助射频与模拟IC设计者准确评估VCO性能,解决仿真不收敛、结果异常等常见问题。

rock5的博客 668

物联网及MQTT协议概述

一、概述 1. 什么是IoT IoT全称The Internet of Things,直译过来就是:物体的Internet网络,也就是物联网。 关于物联网的百度百科定义如下: 物联网是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其...

finedayforu的博客 1315

【Unity实战篇 】| Unity实现 文本框可以自适应大小,到达最大宽度之后再缩小字体

Unity实现 Text文本框可以自适应大小,到达最大宽度之后再缩小字体 需求:在文本框可以自适应大小拉伸的前提下,增加一个最大限制宽度,使其到达最大宽度后 再启用 Best Fit 实现自适应改变文字大小以适应文本框的大小。 在Unity中经常会用到文本组件的自适应大小功能,一般使用HorizontalLayoutGroup和ContentSizeFitter组件配合即可实现文本自适应的效果。

努力前行,总会成为自己心中的那道光 3万+

MQTT协议概述及其应用

MQTT 概述 MQTT协议是一种基于TCP/IP协议的轻量级实时通讯协议,采用发布订阅模式,与Http相比能够主动推送信息给客户端,与WebSocket相比也更加轻量级,往往用于物联网。 MQTT在使用时主要有三部分 发布者,订阅者,代理服务器。订阅者连接代理服务器,订阅相关主题。发布者向代理服务器发送对应主题的内容,代理服务器会将其广播给所有订阅了该主题的发布者。 目前常用的开源MQTT代理服务器有Mosquitto、EMQTTD。阿里云,百度也有提供商用的IOT平台。 常用的MQTT客户端(发布者订阅

qq_38069320的博客 1107

从生产订单到整车交付,SAP 离散制造在汽车行业里的真实落点

汽车行业谈数字化,很容易一上来就谈智能工厂、数字孪生、AI 排产、无人仓、视觉质检。可落到 SAP 项目现场,真正把工厂撑起来的,往往还是几个很朴素的问题,客户订单来了以后,BOM 能不能准确展开,物料能不能准时到线,产能有没有被过度承诺,生产订单能不能被车间正确执行,质量问题能不能追溯,成本能不能按工单和批次沉淀下来。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 110

【博文汇总】I2C总线学习

将这一周学习I2C总线的文章汇总一下。 基础知识学习 触发器的建立时间和保持时间 如何学习总线技术 TTL电平和CMOS电平 深入理解 关于I2C和SPI总线协议 I2C总线深入浅出 I2C总线信号时序总结 对I2C总线协议的一些理解 对I2C总线的时钟同步和总线仲裁的深入理解 I2C总线学习终结,开始SPI总线的学习 深入理解IIC总线时序

ce123的技术博客 6213

MQTT协议第1章、概述

MQTT:Message Queuing Telemetry Transport,是一种基于"发布订阅模式"的轻量级的消息传输协议。消息:是指设备与设备之间或者服务与服务之间要传输的数据。协议:是指传输数据时要遵循的规则。常见的通讯模式:1. 客户端---服务器端客户端-服务器是客户端能够直接和服务器进行通信完成消息的传输。客户端和服务器端需要直接建立连接。2. 发布订阅模式发布订阅模式会将发送消息的发布者publisher与接收消息的订阅者subscribers进行分离。

zzx_1205的博客 570

【问题解决】解决 Python `PermissionError` 权限不足:文件/进程/端口全场景修复

本文总结了Python程序中常见的权限问题及解决方案,包括文件、进程和端口权限错误。文件权限问题通常由文件占用、权限不足或路径错误引起;进程问题多因权限不足或系统限制;端口问题则与端口占用、防火墙或特权端口相关。解决方案提供了详细的代码实现:文件权限管理器类(FilePermissionManager)包含检查权限(check_permission)、修复权限(fix_permission)、安全写入(safe_write)和安全删除(safe_delete)等方法,通过异常处理和临时文件等技术确保操作安全

博客 356

MQTT协议相关概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布,并于 2013 年发布为开放标准。MQTT 协议专注于在低带宽、不稳定或高延迟的网络环境中,可靠地传输小型数据包。

m0_61595251的博客 219

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

2. MQTT协议概述

MQTT协议采用发布/订阅(publish/subscribe)模型,消除了发送者和接收者之间的直接联系,使消息传递更加灵活和解耦。本文了MQTT协议的基本概念、工作原理及其主要特性,阐述了其在物联网中的广泛应用场景,并对比了MQTT与其他通信协议的异同。其消息格式简化,降低了通信开销,提高了数据传输效率。MQTT允许客户端在连接时设置遗嘱消息,确保当客户端异常断开时,代理能够发布预定义的遗嘱消息,通知其他客户端。MQTT使用TCP/IP协议传输数据,支持标准的网络通信,便于在各种网络环境中部署和使用。

一名全栈开发工程师 658

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TCP/IP、UDP、HTTP、MQTT、CoAP、LwM2M协议的概述

目录 TCP/IP 协议 UDP 协议 TCP协议和UDP协议的区别 HTTP 协议 MQTT 协议 CoAP 协议 MQTT和CoAP协议的区别 LwM2M TCP/IP 协议 互联网协议体系结构的另一个方面是 TCP / IP 堆栈。它控制两台计算机之间的数据传输。其中采用三次握手建立一个连接,其中涉及客户端确认数据的接收且发送确认消息给服务器。第二次握手是服...

zhuimeng_ruili的博客 4706

c++ mqtt客户端_物联网及MQTT协议概述

一、概述1. 什么是IoTIoT全称The Internet of Things,直译过来就是:物体的Internet网络,也就是物联网。关于物联网的百度百科定义如下:物联网是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化 学、生物、位置等各种需要的信息,通过各类可能的网络接入...

weixin_39805364的博客 1124

第1章 Mosquitto简介与MQTT协议概述

本文介绍了MQTT协议和Eclipse Mosquitto项目。MQTT是一种轻量级发布/订阅协议,最初为低带宽环境设计,现已发展为物联网领域主流协议。Mosquitto是一个开源MQTT代理,支持MQTT 3.1/3.1.1/5.0版本,具有跨平台、高性能和安全特性。文章详细阐述了MQTT的发布/订阅模式工作原理、典型应用场景(如智能家居、工业物联网和车联网),并对比了MQTT与其他协议的优劣势。Mosquitto凭借其轻量级、易用性和可扩展性,成为物联网项目中的热门选择。

从事嵌入式linux android驱动开发,拥有全栈能力 1347

cpp mqtt paho 使用_物联网及MQTT协议概述

一、概述1. 什么是IoTIoT全称The Internet of Things,直译过来就是:物体的Internet网络,也就是物联网。关于物联网的百度百科定义如下:物联网是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化 学、生物、位置等各种需要的信息,通过各类可能的网络接入...

weixin_42498585的博客 633
上一篇: LVGL 部件之滚轮(lv_roller)
下一篇: LVGL 控件之滑动条(lv_slider)
Projectsauron
博客等级 码龄4年 2587粉丝 100原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值