MQTT基本概念

本文详细介绍MQTT协议的特点、客户端与服务端的交互过程、消息格式及其三个不同的质量等级。通过理解这些概念,读者可以更好地掌握MQTT的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录



前言

其实都懒得介绍了,大家搜资料,一搜一大把,我总结下要点。

一、MQTT特点

  1. 发布/订阅模式
  2. 优点:轻巧、 开放、 简单、 规范, 易于实现。
  3. MQTT协议运行于TCP之上,属于应用层协议。
  4. 三个消息质量等级。

二、客户端与服务端

在这里插入图片描述
在这里插入图片描述

信息交互:
在这里插入图片描述

三、MQTT消息格式

报文格式:
三部分—固定报头+可变包头+有效载荷
在这里插入图片描述

1.固定报文头

MQTT固定报文头最少有两个字节,第一字节包含消息类型和QoS级别等标志位。
第二字节开始是剩余长度字段,该长度是后面的可变报文头加消息负载的总长度,该字段最多允许四个字节。

在这里插入图片描述

2.可变报文头

可变报文头主要包含协议名、协议版本、连接标志、心跳间隔时间、连接返回码、主题名等.

3.有效负荷

当MQTT发送的消息类型是CONNECT(连接)、PUBLISH(发布)、SUBSCRIBE(订阅)、SUBACK(订阅确认)、UNSUBSCRIBE(取消订阅)时,则会带有负荷。

有效负载的具体格式:

ClientID_Len(2byte)+CilenID+ UserName_Len(2byte)+UserName+
PassWord_Len(2byte)+PassWord

CilenID:
在这里插入图片描述
UserName:
在这里插入图片描述
PassWord:
在这里插入图片描述

还不是太懂的话,看第二章代码,一眼就明白了。

四、 消息质量等级

• QoS 0:最多分发一次。消息的传递完全依赖底层的TCP/IP网络,协议里没有定义应答和重试,消息要么只会到达服务端一次,要么根本没有到达。
• QoS 1:至少分发一次。服务器的消息接收由PUBACK消息进行确认,如果通信链路或发送设备异常,或者指定时间内没有收到确认消息,发送端会重发这条在消息头中设置了DUP位的消息。
• QoS 2:只分发一次。这是最高级别的消息传递,消息丢失和重复都是不可接受的,使用这个服务质量等级会有额外的开销。

# 五、 必须要用的三元组(以后详细操作)

在这里插入图片描述


总结

如果看不懂,就把这几张都看一遍。
然后再结合我的操作方式,你跟着操作一遍。
记住也要看下一章代码部分(注释很详细的)。
(手把手写MQTT协议)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值