简介
MQTT全称Message Queuing Telemetry Transport,中文名消息队列遥测传输协议,是一个基于TCP/IP、发布订阅模式的轻量级应用层协议。
MQTT是以服务端-客户端的形式,以发布订阅模式来进行消息传递的。通讯过程需要三种角色:发布者publish、代理broker、消费者subscribe。其中,代理是服务端,发布者与消费者都是客户端。
MQTT传输的报文分为Topic和payload,其中Topic就是客户端订阅的主题,payload为订阅该主题后收到的内容。主题采用的是分层结构,用#和+就能指定多个主题。比如 /Sensor/temperature/#表示所有房间的温度,/Sensor/+/room1表示room1中的所有传感器的值。
QOS在MQTT中有三个等级:QoS0,QoS1,QoS2。分为表示最多发一次,至少发一次,只发一次。
QoS0:遵循TCP/IP尽力发布原则,消息要么达到一次中介,要么没有达到;
QoS1:中介一段时间内不返回PUBACK,发布者会一直发;
QoS2:中介收到消息后,会给发布者发送PUBREC,发布者会向中介发送PUBREL,然后中介会向发布者发送PUBCOMP,接下来根据订阅者指定的QoS向订阅者传递消息。
网友评论