打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MQTT协议简介
MQ Telemetry Transport(MQTT)是一种轻量级、基于代理的发布/订阅式的消息协议。发布/订阅消息机制可以提供一对多的关系,使用TCP/IP提供基本网络服务,包含有三种质量的服务:
1)至多一次,可能会出现丢包的现象。可以使用在对实时性要求不高的情况。
2)至少一次,保证包会到达目的地,但是可能出现重包。
3)正好一次,保证包会到达目的地,且不会 出现重包的现象。
一。重要的术语
Message Type
Enumeration解释
Reserved 0 保留
Connect 1 客户端到服务端的连接请求
ConnACK 2 服务端对连接请求的响应
Publish 3 发布消息
puback 4 对发布消息的回应
pubRec5
收到发布消息(保证传输part1)
pubRel 6 释放发布消息(保证传输part2)
pubComp 7 完成发布消息(保证传输part3)
subscribe 8 客户端订阅请求
subBack 9 订阅请求的回应
unsubscribe 10 停止订阅请求
unsubBack 11 停止订阅请求响应
pingReq 12 Ping请求(保持连接)
pingResp 13 Ping响应
disconnect 14 客户端正在断开
reserved 15 保留
MQTT中有这14种消息类型。
Keep Alive timer
MQTT协议实际上是一个客户端和服务器端长连接的过程。Keep Alive timer以秒为单位,定义的是从客户端相邻两次接收客户端消息的最大间隔时间,也可以说是一次长连接的保持时间。因此,客户端每隔一段时间就需要向服务器发送数据来保持连接(也就相当于心跳包的功能),服务器接收到连接信息后,会反馈一个响应ACK。当服务器端在Keep Alive timer的一倍半的时间内都没有收到来自客户端的任何消息,就会默认为客户端发送了断开连接的消息而断开这个长连接。
Topic name
topic name 用来标识已发布消息的信息的渠道。订阅者用它来确定接收到所关心的信息。它是一个分层的结构,用斜线“/”作为分隔符。有两种通配符可以在主题发布、订阅时使用:“#”和“+”。前者可以通配多层结构,而后者只能通配一层结构。例如一个topic : “a/b/c”,则“a/+/c”和“a/#”都可以和它相等。
Quality  of Service (qos)
0:发送一次信息而不加确认。(至多一次)
1:至少一次。
2:正好一次
Retained messages
所有的信息都可以通过配置来保存下来。并且新订阅某个主题的用户可以收到该主题最后一条
保存的信息。这在某个主题不经常更新的情况下是非常有用的。
clean  session/durable connections
在连接的过程中, 一个客户端设置“cleansession”标记位。如果该位被设置为false,则该连接则被认为是持久连接,其具体表现为:当该客户断开后,任何订阅的主题和QoS被设置为1或2的信息都会保存,直到该客户端再次连接上server端。若“cleansession”被设置为true,所有的订阅主题都会被移除。
Will
当一个客户端断开连接的时候,它希望客户端可以发送它指定的消息。该消息和普通消息的结构相同。通过设置该位并填入和信息相关的内容即可。
Payload
以下三种命令包含有payload:
1)connect: payload是一个或多个UTF-8格式编码的字符串,用来为客户端指定唯一个标识符、一个主题和消息。用户名称和密码。当然根据头部选项的不同,这些东西不一定都出来。
2)subscribe:也是UTF-8格式编码,包含一列Topic的名字和QoS等级。
3)subACK:列出一列QoS等级。
Message identifiers
是一个16位的无符号整数,在同一个方向上的传输必须保持其唯一性,一般都是下条消息的ID是上条的ID号加1(类似于TCP连接中的SYN)。当然,你也可以不这么做。它会出现在publish、pubBack、pubRec、pubRel、pubComp、subscribe、subAck、unsubscribe、unsuback类消息的头部。
二.重要命令的简介
Connect :当一个TCP/IP套接字在服务器端和客户端连接建立时需要使用的命令。
publish  : 是由客户端向服务端发送,告诉服务器端自己感兴趣的Topic。每一个publishMessage 都会与一个Topic的名字联系在一起。
pubRec:   是publish命令的响应,只不过使用了2级QoS协议。它是2级QoS协议的第二条消息
pubRel:    是2级QoS协议的第三条消息
publComp: 是2级QoS协议的第四条消息
subscribe: 允许一个客户端注册自已感兴趣的Topic 名字,发布到这些Topic的消息会以publish Message的形式由服务器端发送给客户端。
unsubscribe:  从客户端到服务器端,退订一个Topic。
Ping: 有客户端向服务器端发送的“are you alive”的消息。
disconnect:断开这个TCP/IP协议
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MQTT协议笔记之连接和心跳
物联网应用层协议介绍(二)--MQTT
一文了解MQTT协议
mqtt协议 学习笔记
MQTT--入门(二)
为什么 MQTT 是最适合物联网的网络协议
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服