你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
MQTT 的 REST API 规范
本文档阐明了 MQTT 上下文中 Web PubSub 数据平面 REST API 的含义。 现有的 Web PubSub REST API 文档侧重于 Web PubSub 自己的协议,这可能会使其应用程序对 MQTT 不清楚。
术语映射
首先,请熟悉 Web PubSub 和 MQTT 之间的术语映射。 如果已熟悉这些术语,可以跳过本部分。
MQTT 术语 | 相应的 Web PubSub 术语 | 关系 |
---|---|---|
服务器/MQTT 代理 | Web PubSub 服务 | Web PubSub 服务作为 MQTT 代理来提供 MQTT 连接服务。 请注意,在文档中,我们通常使用术语“服务器”而不是 MQTT 代理来指代上游服务器。 |
会话 | 连接 | Web PubSub 中的“连接”是一个逻辑概念,表示客户端与服务之间的有状态关系。一个“连接”对应一个“会话”。 通常情况下,这两个单词可互换。 |
订阅主题 | 加入组 | 这两个操作效果相同:客户端会收到来自该主题或组的消息。 主题名称是组名称。 |
将消息发布到主题 | 将消息发送到组 | 这两个操作的效果相同:订阅该主题或属于该组的客户端会收到消息 |
客户端 ID | 连接 ID | “连接 ID”标识到 Web PubSub 的“连接”。 我们使用“客户端 ID”作为 Web PubSub 中的 MQTT 连接的“连接 ID”。 |
操作映射
有关可用操作的综合列表,请参阅 REST API 参考。
REST API 操作分为以下组:
下面定义了其中每个类别。
消息发送操作
REST API 操作 | 对 MQTT 的影响 |
---|---|
发送到组 | 订阅了使用组名称命名的主题的 MQTT 连接将收到消息。 |
发送到“全部” 发送给用户 发送到连接 |
相应的 MQTT 连接将收到包含主题 $webpubsub/server/messages 的消息。 |
消息以 1 的 QoS 发布。 根据标准 MQTT 降级规则,根据客户端的订阅选项,可能会降级收到的消息的 QoS。
订阅管理操作
REST API 操作 | 对 MQTT 的影响 |
---|---|
向组添加连接 将连接添加到组 |
为指定的连接添加订阅。 |
将用户添加到组 | 为指定用户的所有连接添加订阅。 |
从所有组中删除连接 从组中删除连接 从组中删除连接 从所有组中删除用户 从组中删除用户 |
删除指定连接或用户的一个或多个订阅。 |
组名称对应于 MQTT 主题筛选器。 将连接或用户添加到组时,将使用默认 MQTT 订阅选项。
权限管理操作
这些操作在 MQTT 的上下文中非常简单,因此忽略定义。
- 检查权限
- 授予权限
- 撤销权限
存在管理操作
REST API 操作 | 对 MQTT 的影响 |
---|---|
连接存在 组存在 用户存在 |
检查指定的连接、用户或组是否存在会话。 请注意,这不同于检查连接当前是否处于联机状态。 |
关闭所有连接 关闭组连接 关闭用户连接 |
结束指定的会话并终止相应的物理连接。 |
客户端令牌生成操作
REST API 操作 | 对 MQTT 的影响 |
---|---|
生成客户端令牌 | 生成要连接的 MQTT 客户端的连接令牌和 URL。 |
请注意,从 REST API 版本 2024-01-01
开始,MQTT 支持可用。 必须为 MQTT 客户端指定查询参数 clientType=MQTT
。