- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
通过本节学习,您可以:
了解智能安防设备的通信方式MQTT
智能安防设备通信方式
1.MQTT通信过程
在MQTT通信过程中,有3种身份:发布者(Publisher)、消息代理(Broker)和订阅者(Subscriber)。其中发布者和订阅者都是客户端,消息代理是服务器。对于同一个客户端,它可能是发布者也可能是订阅者。
MQTT客户端可以发布消息供其他客户端订阅,可以订阅其他客户端发布的消息,可以退订或者删除消息,断开与服务器的连接。
MQTT服务器作为消息代理,位于消息发布者和订阅者之间。它接收来自发布者的连接请求,接收发布者发布的消息,处理订阅者的订阅和退订请求,向订阅者转发订阅的消息。
智能安防设备通信方式
MQTT协议中传输的消息主要分为主题(Topic)和负载(Payload)。
MQTT进行通信的具体过程如图所示:
订阅者发送连接请求给代理服务器,代理服务器授权并返回一个CONNACK确认消息,形成一个会话;
订阅者发送订阅请求给代理服务器,如果订阅成功,代理服务器返回一条SUBACK确认消息;
智能安防设备通信方式
发布者先与代理服务器建立连接,之后发布相应主题的消息内容给代理服务器,代理服务器将负载转发给订阅这个主题的订阅者;
订阅者可以发送取消订阅给代理服务器,代理服务器返回UNSUBACK确认消息,经过PING命令之后可断开连接,返回DISCONNECT。
智能安防设备通信方式
2.MQTT主题
在MQTT中使用主题名来标识一个主题。一个主题名的格式是:
{app}{operator}/{infoType}/{infoTarget}/{infoPath}
{app}表示发布本消息的应用程序。比如消息是由华为eSDK发布,则对应的{app}值为esdk;如果是其他App发布的,则{app}为该应用程序的关键字名称。
{operator}是一个动作,表示操作类型,目前支持以下操作类型:
get:获取操作,适用于无输入有输出的请求/响应场景。
Set:设置操作,适用于有输入无输出的请求/响应场景。
action:命令操作,适用于既有输入又有输出的请求/响应场景,输入、输出可选。
notify:通知,适用于无须请求、主动推送的信息。
智能安防设备通信方式
操作类型operator
消息类型infoType
说明
get
set
action
request
请求消息
response
响应消息
notify
event
……
事件通知消息。后续扩展的或者其他自定义通知类型
操作类型operator
消息类型infoType
消息目标infoTarget
get
set
action
request
接收该请求消息的目标应用程序
response
接收该响应消息的目标应用程序,对应于{app},不能为*
notify
event
……
事件通知消息。后续扩展的或者其他自定义通知类型
{infoType}表示消息类型,根据操作类型{operator}而定。
{infoTarget}表示消息目标,其含义与{infoType}相关。
{infoPath}表示信息对象。例如,可用clock表示终端时间,用temperature表示温度。
智能安防设备通信方式
3.主题通配符
当订阅者订阅主题时,可以使用通配符来订阅多个主题。
MQTT支持3种通配符:
层级分隔符“/”
多层通配符“#”
单层通配符“+”
层级分隔符“/”将主题分为了多个层级,使得主题层次分明。
多层通配符“#”能够匹配当前主题层级下的所有子层级的子主题。
单层通配符“+”只能匹配“+”所在的一层的主题。
智能安防设备通信方式
4.MQTT数据报文
MQTT协议的数据报文主要由三部分组成:固定头、可变头和有效载荷。其中固定头是所有数据报文都必须包含的部分。
MQTT协议数据报文固定头格式:
Bit
7
6
5
4
3
2
1
0
Byte1
MessageType
DUPflag
QoSlevel
RETAIN
Byte2
RemainingLength
智能安防设备通信方式
MessageType:表示此数据报文的类型为连接请求、订阅请求、订阅确认、取消订阅等类型中的一种。
DUPflag:用来保证消息可靠传输。设置为1,即在变长中增加消息标识,并需要返回确认。
QoSlevel:消息的服务质量。等级表示保证传递的次数,分3个等级。
RETAIN:发布保留标识。指是否保留消息在代理服务器中,以供新的订阅者订阅此消息。
RemainingLength:表示可变头和有效载荷的字节数,最多可以占4个字节。
可变头的内容因数据报文类型不同而不同,有效载荷表示消息的具体内容。
Bit
7
6
5
4
3
2
1
0
Byt
原创力文档


文档评论(0)