简介:
- MQTT是一种基于“发布/订阅”的轻量级通信协议,它构建在在TCP/IP协议上。它最大的优点是可以用低开销实现实时可靠的远程设备消息服务。在物联网领域有广泛的应用。
基本特点
-
使用发布/订阅消息模式,提供一对多的消息发布,可以解除应用程序耦合。
协议需要客户端和服务端,而协议中主要有三种身份:发布者(Publisher)、代理(Broker,服务器)、订阅者(Subscriber)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,而消息发布者可以同时是订阅者,实现了生产者与消费者的脱耦。
-
对负载内容屏蔽的消息传输。可以有选择对订阅者接收的内容屏蔽
-
使用TCP/IP提供网络连接,可以提供有序的稳定的数据。MQTT协议运行于TCP之上,属于应用层协议,因此只要是支持TCP/IP协议栈的地方,都可以使用MQTT。
-
有三种消息发布服务质量Qos
Qos 0 :这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络
QoS 1 :承诺消息将至少传送一次给订阅者,信息可能会重复
QoS 2 :保证消息仅传送到目的地一次 -
小型传输,开销很小(固定长度的头部是2字节)
实现方式
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
(2)payload,消息的内容,是指订阅者具体要使用的内容。
网络传输与应用消息
当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量(QoS)和主题名(Topic)相关连。
MQTT客户端的功能
(1)发布其他客户端可能会订阅的信息;
(2)订阅其它客户端发布的消息;
(3)退订或删除应用程序的消息;
(4)断开与服务器连接。
MQTT服务器
(1)接受来自客户的网络连接;
(2)接受客户发布的应用信息;
(3)处理来自客户端的订阅和退订请求;
(4)向订阅的客户转发应用程序消息。