1. 术语

1.1 网络连接

  1. 连接客户端到服务端。
  2. 提供一种有序、无损、双向字节流方式。

1.2 应用消息

MQTT协议为应用跨网络运载的数据。MQTT传输应用消息是,她包含负荷数据,服务质量(QoS), 一个属性组合及标题名称。

1.3 客户端(Client)

使用MQTT的程序或设备,即为客户端:

  1. 打开服务器连接。
  2. 发布其他客户端关注的应用消息。
  3. 订阅其关注的应用消息。
  4. 取消订阅应用消息
  5. 关闭服务器连接。

1.4 服务端(Server)

一个程序或设备表作为发布、订阅应用消息客户端的中间协调者,即为服务端。

  1. 接收客户端的网络连接。
  2. 接收客户端发布的应用消息。
  3. 处理客户端的订阅、取消订阅请求。
  4. 透传应用消息给匹配的客户端订阅者。
  5. 关闭客户端的网络连接。

1.5 会话(Session)

客户端和服务端有状态的 连接即为会话。部分会话整个连接期间都保持,部分会话只持续几个网络连接。

1.6 订阅(Subscription)

订阅包含主题过滤器和服务质量(Qos)。一个订阅只能与一个会话相关,但一个会话可以包含多个订阅。对话中的每个订阅都有不同主题过滤器。

1.7 共享订阅

共享订阅包含一个主题过滤器和质量服务(Qos)。一个共享订阅可以与多个会话相关,以支持更广泛的消息交换模式。共享订阅匹配的影响消息,只发送给其中一个会话。一个会话可以订阅多个共享订阅,且可同包含共享订阅和非共享订阅。

1.8 模糊订阅(Wildcard Subscription)

模块订阅的主题过滤器包含一个或多个通配符。该订阅可以匹配一个或多个主题名。

1.9 主题名称(Topic Name)

应用消息附带的标签,用于服务订阅匹配,即为主题名称。

1.10 主题过滤器

一个订阅的表达式,用于表明其关注的一个或多个主题。主题过滤器可保护通配符。

1.11 MQTT控制包

一种跨网络传输的信息包。MQTT规范定义了15种MQTT控制包,例如用于传输消息的发布包。

1.12 异常包(Malformed Packet)

异常包即为一种不可解析的控制包。

1.13 协议错误(Protocol Error)

包解析发现包含协议不允许的数据或,或者与客户端、服务端状态不一致,即为错误。

1.14 遗嘱消息(Will Message)

网络连接关闭后,服务器发布的应用消息以防网络连接异常关闭。

1.15 非法编码

Unicode 控制码及Unicode 非字符不可包含在UTF-8 编码字符串中