【物联网协议】MQTT_mqqt

MQTT QoS级别

MQTT支持三个QoS(服务质量)级别:0,1和2。QoS 0表示消息最多发送一次,可能丢失或重复;QoS 1保证消息至少发送一次,并且始终按顺序传递;QoS 2则提供最高级别的可靠性,确保恰好一次交付,并且严格按照顺序传递。

最后遗愿消息

最后遗愿消息是一种特殊类型的消息,在客户端非正常断开连接时将自动发布。它通常用于指示某个设备已经下线或无法响应。

以上是MQTT协议的一些详细信息及其相关概念。

MQTT控制报文的类型

请求类型类型名称英文类型名请求方向
0保留Reserved
1连接CONNECT客户端到服务器
2连接确认CONNACK服务器到客户端
3发布PUBLISH两个方向都允许
4发布确认PUBACK两个方向都允许
5发布重传PUBREC两个方向都允许
6发布完成PUBREL两个方向都允许
7发布释放PUBCOMP两个方向都允许
8订阅SUBSCRIBE客户端到服务器
9订阅确认SUBACK服务器到客户端
10取消订阅UNSUBSCRIBE客户端到服务器
11取消订阅确认UNSUBACK服务器到客户端
12心跳请求PINGREQ客户端到服务器
13心跳请求确认PINGRESP服务器到客户端
14断开连接DISCONNECT客户端到服务器
15保留Reserved

MQTT协议的connectAck是MQTT客户端连接建立后,MQTT代理(服务器)回复给客户端的确认消息。以下是MQTT connectAck的响应消息包含的信息:

MQTT connectAck

当MQTT客户端成功连接到MQTT代理时,MQTT代理(服务器)会回复一个“connectAck”消息,用于确认连接是否成功建立。connectAck消息通常包含以下内容:

Return Code

Return code表示MQTT代理对于客户端请求连接的响应状态码。它用于表示连接成功或失败,并提供有关发生错误的更多细节。不同的返回码可以表示不同类型的错误,例如拒绝未授权的访问等。
以下是相应的表格和代码:

返回码响应
0连接接受
1连接拒绝,不可接受的协议版本
2连接拒绝,标识符拒绝
3连接拒绝,服务器不可用
4连接拒绝,错误的用户名和密码
5连接拒绝,未授权

Connect Flags

Connect flags是由MQTT客户端在连接请求消息中发送的标志位。它允许指定MQTT连接中使用的一些参数,例如清空保留消息、使用安全套接字层等。

Keep Alive

Keep alive指定了一个时间间隔,在该时间间隔内,MQTT代理将检查客户端是否仍然在线。如果MQTT代理没有收到来自客户端的心跳消息,则认为客户端已经掉线,会主动断开客户端连接。

MQTT心跳包机制

MQTT协议提供了心跳包机制,用于确认连接是否打开,并且broker和客户端都连接上了对方。这种机制使得客户端能够设定一定时间间隔,并根据此间隔定期地向broker发送消息。心跳时间是broker和客户端所能接受的最长通信周期。

心跳周期

心跳机制的最长周期是18小时12分15秒。如果心跳周期为0,则心跳机制将无效。

发送PINGREQ报文

当没有任何其他控制报文从客户端发给服务端时,客户端可以通过发送PINGREQ报文告知服务端它仍然活着。PINGREQ报文用于以下目的:

  • 在客户端未发送任何其他控制报文时,告知服务端客户端还处于活跃状态。
  • 请求服务端发送响应来确认自己仍然活着。
  • 通过使用网络来确认网络连接是否已断开。

这些措施有助于保持客户端与MQTT Broker之间的可靠通信,并防止因某些原因导致连接的意外关闭。

Payload

Payload包含与MQTT连接相关的其他元数据,例如质量保证级别,提供的最后愿望消息等。

以上是MQTT connectAck的响应消息包含的信息。它提供了有关与MQTT连接相关的各种信息和参数。了解connectAck消息可以帮助开发者快速诊断MQTT连接问题,确保连接可以稳定和可靠地工作。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里云物联网平台是一种基于云计算的物联网解决方案,提供了多种相关技术和服务。其中,MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,通常用于物联网设备之间的通信。 在阿里云物联网平台中,MQTT可以通过3个通道进行数据传输。这三个通道可以分别用于传输设备状态、设备属性和设备事件。通过这样的数据传输,物联网平台可以帮助用户实现对设备的监控、控制、数据采集和分析等功能。 具体来说,MQTT协议是一种基于发布/订阅机制的协议物联网设备可以通过订阅某个主题,以接收相关的数据消息。同时,设备也可以发布自己的数据消息到指定的主题,供其他设备或应用程序订阅和使用。 在物联网开关领域,MQTT协议可以发挥重要作用。物联网开关是一种可以连接智能设备的装置,例如灯光开关、电源开关等。通过采用MQTT协议物联网开关可以与其他物联网设备进行通信,接收和发送相关的控制消息。这样的交互可以实现对设备的智能控制和远程管理,提高了设备的便捷性和智能化水平。 总之,阿里云物联网平台的MQTT协议,提供了一种高效的物联网设备通信方式,通过mqtt 3路数据,mqtt协议物联网开关的结合,可以实现对设备的智能控制和数据传输,为物联网应用提供了强大的技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值