mqtt是轻量级基于代理的发布/订阅的消息传输协议。
作为安卓开发而言,我们一般将其用来作为推送协议或者将其作为与嵌入式通信的协议。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
- 轻量级的 machine-to-machine 通信协议。
- publish/subscribe模式。
- 基于TCP/IP。
- 支持QoS。QoS(Quality of Service,服务质量)
- 适合于低带宽、不可靠连接、嵌入式设备、CPU内存资源紧张。
协议构成
固定头部+可变头部+消息体、
头部
public $operations=array(
"MQTT_CONNECT"=>1,//请求连接
"MQTT_CONNACK"=>2,//请求应答
"MQTT_PUBLISH"=>3,//发布消息
"MQTT_PUBACK"=>4,//发布应答
"MQTT_PUBREC"=>5,//发布已接收,保证传递1
"MQTT_PUBREL"=>6,//发布释放,保证传递2
"MQTT_PUBCOMP"=>7,//发布完成,保证传递3
"MQTT_CONNECT"=>1,//请求连接
"MQTT_CONNACK"=>2,//请求应答
"MQTT_PUBLISH"=>3,//发布消息
"MQTT_PUBACK"=>4,//发布应答
"MQTT_PUBREC"=>5,//发布已接收,保证传递1
"MQTT_PUBREL"=>6,//发布释放,保证传递2
"MQTT_PUBCOMP"=>7,//发布完成,保证传递3