MQTT:一种物联网和阿里互联网领域的行业标准协议,适合阿里终端之间的数据传输。消息队列MQTT默认支持该协议;
MQTT服务端:实现MQTT协议的服务端,负责保持和MQTT客户端的长连接,并且将消息路由到对应的客户端,或将消息转发到其他MQTT服务端节点。同时负责MQTT离线消息的存储;
MQTT客户端:用于和MQTT服务器交互的阿里端节点,全称为MQTT消息队列客户端;
父级Topic(Parent Topic):MQTT协议基于Pub/Sub模型,因此任何消息都属于一个Topic。根据MQTT协议,Topic存在多级,中间用“/”分割,定义第一级Topic为父级Topic,使用MQTT消息队列前,需先在控制台创建该父级Topic;
子级Topic(Sub Topic):MQTT的二级Topic,甚至三级Topic都是父级Topic下的子级。使用时,直接在代码里设置,无需创建,需要注意的是MQTT消息队列限制父级Topic长度为3~64个字符,子级Topic的长度不超过256个字符,如果超出长度限制将会导致客户端异常;
Client ID:MQTT消息队列的Client ID是每个客户端的唯一标识,要求全局唯一,使用相同的Client ID连接MQTT消息队列服务会被拒绝,Client ID由两部分组成,组织形式为GroupID@@@DeviceID。Client ID的长度限制为64个字符,不允许使用不可见字符;
Group ID:用于指定一组逻辑功能完全一致的节点共用的组名,代表一类相同功能的设备,Group ID需要在MQTT消息队列的控制台创建,命名以“GID-”或“GID_”开头,创建后方可使用;
Device ID:每个设备独一无二的标识,由业务方自己指定。需要保证全局唯一,例如每个传感器设备的序列号;
QoS:QoS(Quality of Service)指代消息传输的服务质量。它包括以下级别:
QoS = 0代表最多分发一次
QoS = 1代表至少达到一次
QoS = 2 代表仅到达一次
cleanSession:MQTT协议中对一个客户端建立TCP连接后是否关心之前状态的定义
cleanSession = true:客户端再次上线时,将不再关心之前所有的订阅关系以及离线消息。
cleanSession = false:客户端再次上线时,还需要处理之前的离线消息,而之前的订阅关系也会持续生效。