在使用微消息队列 MQTT 前,需理解该产品和 MQTT 协议所涉及的基本概念和术语。微消息队列 MQTT 的使用场景,请参见什么是微消息队列 MQTT?

基本概念

实例(Instance)

创建购买微消息队列 MQTT 服务的实体单元,每个微消息队列 MQTT 实例都对应一个全局唯一的服务接入点 URL。使用微消息队列 MQTT 前都需要在对应的地域( Region)创建一个实例,并使用对应的接入点来访问服务。创建微消息队列 MQTT 实例的步骤,请参见MQTT 快速入门

MQTT 服务器
微消息队列 MQTT 提供的 MQTT 协议交互的服务端节点,用于完成与 MQTT 客户端和消息队列 MQ 各自的消息收发。
MQTT 客户端
用于和 MQTT 服务器交互的移动端节点,全称为微消息队列 MQTT 客户端。
P2P 消息
微消息队列 MQTT 在标准的 MQTT 协议基础上提供的一种特殊消息,该类型消息无需普通的订阅关系匹配,便可直接发送给指定的单个目标 MQTT 客户端。详情请参见 P2P 消息收发模式(MQTT)
父级 Topic(Parent Topic)
MQTT 协议基于 Pub/Sub 模型,因此任何消息都属于一个 Topic。根据 MQTT 协议,Topic 存在多级,定义第一级 Topic 为父级 Topic,使用微消息队列 MQTT 前,需先在控制台创建该父级 Topic,可以在微消息队列 MQTT 控制台创建,或者直接在消息队列 MQ 的控制台创建。
子级 Topic(Subtopic)
MQTT 的二级 Topic,甚至三级 Topic 都是父级 Topic 下的子类。使用时,直接在代码里设置,无需创建。需要注意的是微消息队列 MQTT 限制父级 Topic 和子级 Topic 的总长度为 64 个字符,如果超出长度限制将会导致客户端异常。
Client ID

微消息队列 MQTT 的 Client ID 是每个客户端的唯一标识,要求全局唯一,使用相同的 Client ID 连接微消息队列 MQTT 服务会被拒绝。

Client ID 由两部分组成,组织形式为 <GroupID>@@@<DeviceID>。Client ID 的长度限制为 64 个字符,不允许使用不可见字符,具体限制请参见使用限制

Group ID
用于指定一组逻辑功能完全一致的节点共用的组名,代表一类相同功能的设备。Group ID 需要在微消息队列 MQTT 的控制台创建,创建后方可使用。如何创建 Group ID 的具体步骤请参见MQTT 快速入门
Device ID
每个设备独一无二的标识,由业务方自己指定。需要保证全局唯一,例如每个传感器设备的序列号。

网络类

ServerUrl

微消息队列 MQTT 推荐移动终端使用公网接入点,也支持内网接入点。目前微消息队列 MQTT 的接入除了支持标准协议的 1883 端口,同时还支持加密 SSL、WebSocket、Flash 等方式。接入点 URL 是在创建实例之后自动分配,请妥善保管。如何创建实例的步骤请参见MQTT 快速入门

协议相关

MQTT
一种物联网和移动互联网领域的行业标准协议,适合移动终端之间的数据传输。微消息队列 MQTT 默认支持该协议。
QoS
QoS(Quality of Service)指代消息传输的服务质量。它包括以下级别:
  • QoS0 代表最多分发一次
  • QoS1 代表至少达到一次
  • QoS2 代表仅分发一次
cleanSession
cleanSession 标志是 MQTT 协议中对一个客户端建立 TCP 连接后是否关心之前状态的定义。具体语义如下:
  • cleanSession=true:客户端再次上线时,将不再关心之前所有的订阅关系以及离线消息。
  • cleanSession=false:客户端再次上线时,还需要处理之前的离线消息,而之前的订阅关系也会持续生效。

QoS 和 cleanSession 搭配使用时需注意以下几点:

  • MQTT 要求每个客户端每次连接时的 cleanSession 标志必须固定,不允许动态变化,否则会导致离线消息的判断有误。
  • MQTT 目前对外 QoS2 消息不支持非 cleanSession ,如果客户端以 QoS2 方式订阅消息,即使设置 cleanSession=false 也不会生效。
  • P2P 消息的 cleanSession 判断以发送方客户端的配置为准。

QoS 和 cleanSession 的不同组合产生的结果如表 1 所示。

表 1. QoS 和 cleanSession 的组合关系
QoS 级别 cleanSession=true cleanSession=false
QoS0 无离线消息,在线消息只尝试推一次 无离线消息,在线消息只尝试推一次
QoS1 无离线消息,在线消息保证可达 有离线消息,所有消息保证可达
QoS2 无离线消息,在线消息保证只推一次 暂不支持

解决方案相关

RTC
实时通信,一种主要面向语音、视频领域的网络通信方式。目前比较主流的应用场景是语音通话、视频通话、视频会议等。
RTC 服务器
阿里云音视频通信 RTC 提供的音视频相关媒体通道服务。
音视频业务管控服务器
音视频通信系统中的管控节点,简称音视频管控服务。音视频管控服务需要由业务方自行建设,用于控制所有音视频通信会话的生命周期。该管控节点一般部署在云端,使用阿里云的基础产品搭建。
音视频移动端应用
音视频通信系统中最终用户持有的终端 App,简称终端 App。终端用户使用该 App 发起或者参与音视频通话。
智能 AP
市面常见的智能路由器等网络设备,支持应用编程,可以同时承担互联网接入以及局域网设备控制等工作。
电子价签
实际分布在商场超市等场所中的电子显示屏幕,一般使用蓝牙、ZigBee 等无线传感网络协议和智能 AP 节点组网。
电子价签管控服务
电子价签系统中用于管理电子屏幕显示内容的后台服务,主要承担改价等人工操作的任务管理和查询工作。
RDS
阿里云推出的一种稳定可靠、可弹性伸缩的在线数据库服务。在电子价签系统中用来持久化改价等任务的状态变更。
SLS 日志存储
阿里云推出的日志存储服务,在电子价签系统中用来持久化保存所有操作日志,用于审计和溯源。