一、MQTT是什么
MQTT是Message Queuing Telemetry Transport 的简称及消息队列传输探测。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,它工作在TCP/IP协议族上,是为硬件性能底下的远程设备及网络状况糟糕的情况下而设计的发布/订阅型消息协议,是一个即时通讯协议。
二、MQTT的组成
MQTT Client
MTQTT客户端 是指运行MQTT库并通过网络连接到MQTT borker 的任何设备,这些设备可以从微控制器到成熟的服务器。
当讨论客户端时, 指的就是MQTT Client, publisher 和 subscriber 都属于 MQTT Client 。所以发布者和订阅者是一种相对的概念, 就是指当前客户端是在发布消息还是在接受消息, 发布和订阅的功能也可以由同一个MQTT Client 实现。
MQTT borker
与MQTT Client 对应的就是MQTT borker, borker (代理) 是任何发布/订阅机构的核心,负责接收所有消息,过滤消息,确定是哪个client订阅的消息,并将消息发送到对应的client; borker还负责保存会话数据,这些数据包括订阅和错过的消息; borker还负责客户端的身份验证及授权。
MQTT Connection
MQTT是基于TCP/IP协议基础之上的,所以MQTT的Client和borker都需要TCP/IP协议的支持。
MQTT的连接总是在client和borker之间进行,client和client之间并不会相互连接。如果要发起连接的话,那么client就会向borker发起 CONNENT消息和状态码进行响应。