简介
MQTT全称为MQ Telemetry Transport,它是一种轻量级的基于订阅分发的消息协议,适用于慢网络和嵌入式设备通信。MQTT支持一对多的消息分发,提供QoS以保证消息的准确到达,使用TCP作为传输层协议,当前比较流行的版本是3.1。如今业界已经有很多公司在使用MQTT来构建应用,比如国外的facebook,国内也有很多,比如提供第三方push的云巴等。
MQTT协议设计的比较简洁,没有什么冗余的东西,相信这也是很多公司愿意尝试使用它的原因,至少学习起来并不费太大功夫。
消息设计
MQTT协议的消息最多由两部分构成:固定头部、可变头部和负载。(1)固定头部MSB;由两个字节构成,第一个字节包含4位消息类型、1位DUP标识、2位Qos等级和1位保留位,第二个字节保存了消息的剩余长度。
MQTT消息类型只有4位来标识,意味着最多不会超过16种,实际上MQTT协议定义了14种消息类型,还有两种是保留类型。简单列举下:
CONNECT(1,连接请求)
CONNACK(2,连接ACK)
PUBLISH(3,发布消息)
PUBACK(4,发布ACK)
PUBREC(5,发布已接受)
PUBREL(6,发布释放)
PUBCOMP(7,发