MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于发布/订阅模式的“轻量级”网络协议,该协议构建于TCP/IP协议上,由IBM在1999年发布,MQTT最大优点在于,可以以极低的带宽,提供可靠的网络服务。
MQTT客户端与服务器交互模式
1. 连接建立
MQTT客户端需要与MQTT服务器建立TCP连接,客户端发送CONNECT报文到服务器请求新的网络连接,CONNECT报文包含协议名、版本号、客户端ID、保持活动间隔、清除会话标志和遗嘱消息等信息。
字段 | 描述 |
Protocol Name | MQTT |
Version | 3.1.1 or 3.1 |
Client Identifier | 用于识别客户端的ID |
Keep Alive | 心跳时间间隔 |
Clean Session | 是否清除会话状态 |
Will Message | 遗嘱消息 |
2. 连接确认
服务器收到CONNECT报文后,将根据报文内容决定是否接受连接,如果接受,服务器将发送CONNACK报文作为响应,CONNACK报文包含一个返回码,表示连接请求是否被接受。
返回码 | 描述 |
0 | 接受连接请求 |
1 | 连接被服务器拒绝,因为客户端没有权限 |
25 | 保留 |
3. 发布和订阅
一旦连接建立,客户端就可以发布或订阅主题了,发布消息时,客户端发送PUBLISH报文,包含主题和负载,订阅主题时,客户端发送SUBSCRIBE报文,包含要订阅的主题列表。
字段 | 描述 |
Topic Name | 主题名称 |
Payload | 消息内容 |
4. 消息接收和发送
当有新的消息发布到订阅的主题时,服务器将发送PUBLISH报文给订阅者,客户端也可以使用PUBLISH报文发送消息到指定的主题。
5. 断开连接
当客户端完成操作后,可以发送DISCONNECT报文到服务器来断开连接,服务器收到DISCONNECT报文后,将关闭TCP连接,并清除与此客户端相关的所有状态。
就是MQTT客户端与服务器的交互模式。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/825907.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复