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

Xilinx VU+系列多DIE FPGA时序约束与跨DIE信号优化策略

本文深入探讨了Xilinx VU+系列多DIE FPGA的时序约束与跨DIE信号优化策略。针对2.5D/3D封装技术带来的时序挑战,详细解析了SLR区域约束、Laguna寄存器配置及跨时钟域约束等关键技术,提供了实用的TCL脚本和RTL优化示例,帮助开发者有效提升设计性能和时序收敛效率。

weixin_29209801的博客 653

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

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

猪哥的专栏 8137

手把手学计科--web网页设计

网页的组成:文字、图像和超链接等元素。还可以包括哦音频、视频和动画。分类:静态(固定信息)和动态(与服务器数据库进行实时的数据交换。HTML和CSS 是一种静态网页搭建技术。

Yhvaely的博客 1747

MQTT协议概述

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

weixin_33836874的博客 420

VisionPro动态坐标系构建:CogFixtureTool与CogFixtureNPointToNPointTool实战解析

本文深入解析了VisionPro中动态坐标系构建的核心技术,重点对比了CogFixtureTool与CogFixtureNPointToNPointTool的原理与应用。通过实战案例,阐述了如何利用坐标跟随(Fixturing)技术解决工业视觉检测中因零件位置偏移导致的测量不准问题,实现从“固定”到“随动”的思维跃迁,从而构建稳定、精准的检测程序。

weixin_29207439的博客 562

Vector CANoe VT2516A实战:从硬件连接到CAPL脚本的完整配置指南

本文详细介绍了Vector CANoe VT2516A板卡从硬件连接到CAPL脚本编写的完整配置指南。涵盖硬件接线原则、VT System配置避坑技巧、系统变量创建规范、可视化Panel设计、CAPL脚本调试及典型故障排查案例,帮助工程师快速掌握VT2516A板卡的应用实践,提升汽车电子测试效率。

weixin_30608503的博客 254

物联网及MQTT协议概述

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

finedayforu的博客 1315

【Java面试题汇总】JVM篇(2026版)

JVM内存模型、双亲委派模型、类加载机制、内存溢出、垃圾回收机制、内存泄漏、垃圾回收流程、垃圾回收器、G1、CMS、JVM调优

种一棵树最好的时间是十年前,其次是现在 3万+

MQTT协议概述及其应用

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

qq_38069320的博客 1107

基于单片机的宠物狗智能项圈设计

GPS定位功能:利用GPS模块实时获取宠物的位置,帮助主人追踪宠物的活动轨迹。活动监测:使用加速度传感器监测宠物的活动情况,如运动、休息等,并进行分析。健康监测:集成心率传感器,实时监控宠物的心率,以确保其健康。声音识别功能:通过麦克风捕捉宠物的叫声,检测宠物的状态(如饥饿、疼痛等)。蓝牙/Wi-Fi通信:通过蓝牙或Wi-Fi模块与手机APP或云端平台进行数据交互,实时反馈宠物的状态信息。电池管理:实现低功耗设计,确保设备的续航能力。

2201_76125393的博客 2279

数字信号处理(一):Xilinx Vivado DDS IP核设计实例(文末附源码)

前言 在数字信号处理时我们经常会用到数字变频,包数字下变频(DDC)和数字上变频(DUC),这其中会用到Xilinx公司的DDS IP核或者Altera公司的NCO IP核来产生本振频率,以现数字域信号频谱搬移。本文我们通过例化Xilinx公司的DDS IP核来产生混频器本振输入频率,并给出Modelsim仿真测试结果。 1、Xilinx DDS IP简介 Xilinx公司的DDS IP核使用AX...

FPGA_Designer 1万+

MQTT协议第1章、概述

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

zzx_1205的博客 570

边缘设备部署全攻略——ARM架构设备的OpenClaw优化(2026实测)

本文详细介绍了ARM架构设备上OpenClaw的部署与优化方案。针对边缘计算场景,文章系统分析了三类ARM设备:嵌入式设备(如Raspberry Pi 4、Jetson Nano)、工业设备(如BeagleBone、i.MX8M Plus)和服务器设备(如Marvell Armada、AWS Graviton3),并提供了详细的性能与功耗对比数据。在系统配置方面,重点推荐了Ubuntu ARM、Debian ARM和OpenWRT三种操作系统,包括内核版本、必备软件包和针对边缘环境的优化策略(如CPU频率调

博客 410

MQTT协议相关概述

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

m0_61595251的博客 219

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

2. MQTT协议概述

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

一名全栈开发工程师 658

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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、付费专栏及课程。

余额充值