你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注意
Azure Web PubSub 中的 MQTT 支持处于预览阶段。
概述
MQTT 是一种轻量级发布/订阅消息传递协议,专为资源受约束的设备而设计。 Azure Web PubSub 服务现在原生支持 MQTT over WebSocket 传输,可以实现 MQTT Web 客户端与其他 Web PubSub 客户端之间的交叉通信
这项新功能解决了两个关键用例:
使用混合协议的实时应用程序:你可以允许使用不同协议的客户端通过 Azure Web PubSub 服务实时交换数据。
支持更多编程语言:你可以使用任何 MQTT 库来连接服务,这样就可以与用 C++ 等语言(而不仅仅是 C#、JavaScript、Python 和 Java 中可用的 SDK)编写的应用程序集成。
请务必注意,此 MQTT 支持是 MQTT 协议的轻型改编版本,只能扩展到 Azure Web PubSub 已支持的功能。 不支持的一些 MQTT 功能包括:
- 通配符订阅
- 保留的消息
- 共享订阅
- 主题别名
有关支持的 MQTT 功能的详细列表,请阅读此文档文章。
有关 Azure 上的更全面 MQTT 代理解决方案,我们建议阅读 Azure 事件网格。
MQTT 支持启用的实时数据交换模式
- MQTT Web 客户端与 Web PubSub 本机客户端中的发布/订阅
- 将消息广播到 MQTT Web 客户端
- 接收 MQTT Web 客户端生存期事件的通知
MQTT 如何适应 Web PubSub 的系统
注意
本部分假设你具备 MQTT 协议和 Azure Web PubSub 方面的基本知识。
Azure Web PubSub 服务现在可以识别 MQTT 消息并将其转换为本机协议。 下表显示了 MQTT 和 Web PubSub 之间相似的或等效的术语映射。 它可以帮助你了解我们如何将 MQTT 概念改编为 Web PubSub 中的概念。 如果你想要使用数据平面 REST API 或客户端事件处理程序来与 MQTT Web 客户端交互,这一点至关重要。
| MQTT 术语 | 相应的 Web PubSub 术语 | 关系 |
|---|---|---|
| 服务器/MQTT 代理 | Web PubSub 服务 | Web PubSub 服务作为 MQTT 代理来提供 MQTT 连接服务。 请注意,在文档中,我们通常使用术语“服务器”而不是 MQTT 代理来指代上游服务器。 |
| 会话 | 连接 | Web PubSub 中的“连接”是一个逻辑概念,表示客户端与服务之间的有状态关系。一个“连接”对应一个“会话”。 通常情况下,这两个单词可互换。 |
| 订阅主题 | 加入组 | 这两个操作效果相同:客户端会收到来自该主题或组的消息。 主题名称是组名称。 |
| 将消息发布到主题 | 将消息发送到组 | 这两个操作的效果相同:订阅该主题或属于该组的客户端会收到消息 |
| 客户端 ID | 连接 ID | “连接 ID”标识到 Web PubSub 的“连接”。 我们使用“客户端 ID”作为 Web PubSub 中的 MQTT 连接的“连接 ID”。 |