你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 Azure Web PubSub 服务?

借助 Azure Web PubSub 服务,可轻松生成服务器和客户端需要实时交换数据的 Web 应用程序。 实时数据交换是开发人员生成和维护某些对时间敏感的应用的基石。 开发人员已经在各种应用程序和行业中使用该服务,例如聊天应用、实时仪表板、多玩家游戏、在线拍卖、多用户协作应用、位置跟踪、通知等。

当应用的使用率很低时,开发人员通常选择轮询机制来提供服务器和客户端之间的实时通信 - 客户端在一段时间间隔内向服务器发送重复的 HTTP 请求。 但是,开发人员经常报告说,虽然轮询机制实现起来很简单,但它有三个重要缺点。

  • 过时的数据。
  • 不一致的数据。
  • 浪费的带宽和计算资源。

这些缺点是促使开发人员寻找替代方案的主要动机。 本文概述了 Azure Web PubSub 服务,以及开发人员如何使用它快速大规模地生成实时信道。

Azure Web PubSub 服务的用途是什么?

AI 辅助聊天机器人中的流式处理令牌

随着最近对 AI 兴趣的激增,Web PubSub 已成为开发人员为令牌流式传输生成支持 AI 的应用程序的宝贵工具。 该服务经过实战测试,可扩展到数千万个并发连接,并提供超低延迟。

提供实时更新

使用 Azure Web PubSub 可让任何需要将数据资源更新交付给网络上其他组件的应用场景受益。 顾名思义,该服务为发布者和订阅者之间的通信提供便利。 发布者是发布数据更新的组件。 订阅者是订阅数据更新的组件。

Azure Web PubSub 服务用于数据对时间敏感的众多行业和应用场景。 下面是一些常见用例的部分列表。

用例 示例应用程序
高频率数据更新 多玩家游戏、社交媒体投票、民意测验、在线拍卖
实时仪表板和监视 公司仪表板、金融市场数据、即时销售更新、游戏排行榜、IoT 监视
跨平台聊天 实时聊天室、在线客户支持、实时购物助手、messenger、游戏内聊天
位置跟踪 车辆资产跟踪、交货状态跟踪、运输状态更新、打车应用
多用户协作应用 共同创作、协作白板和团队会议应用
跨平台推送通知 社交媒体、电子邮件、游戏状态、旅行警报
IoT 和连接的设备 实时 IoT 指标、管理电动汽车充电网络、实时音乐会参与
自动化 基于上游事件的实时触发器

使用 Azure Web PubSub 服务的优势是什么?

对大规模客户端连接和高可用性体系结构的内置支持:

Azure Web PubSub 服务是针对大规模实时应用程序设计的。 使用单个 Web PubSub 资源,它可扩展到 100 万个并发连接,这对于大多数情况来说已经足够了。 当多个资源一起使用时,该服务使你能够扩展超过 100 万个并发连接。 同时,它还支持多个全局区域,以实现分片、高可用性或灾难恢复目的。

对各种客户端 SDK 和编程语言的支持:

Azure Web PubSub 服务适用于各种客户端。 这些客户端包括:Web 和移动浏览器、桌面应用、移动应用、服务器进程、IoT 设备和游戏控制台。 服务器和客户端 SDK 可用于主流编程语言(C#、Java、JavaScript 和 Python),使得可轻松使用服务提供的 API。 由于该服务支持标准 WebSocket 协议,因此,如果 SDK 在所选编程语言中不可用,则可使用任何支持 REST 的编程语言直接调用 Web PubSub 的 API。

为不同的消息传送模式提供丰富的 API:

Azure Web PubSub 服务提供服务器和客户端之间的实时双向通信,用于数据交换。 该服务提供的功能使你能够精细控制消息的传送方式和传送对象。 下面是受支持的消息传送模式的列表。

消息传送模式 详细信息
广播到所有客户端 服务器向所有连接的客户端发送数据更新。
广播到一部分客户端 服务器向你任意定义的一部分客户端发送数据更新。
广播给特定人类用户拥有的所有客户端 一个人类用户可打开多个浏览器选项卡或设备,你可向该用户广播,使该用户使用的所有 Web 客户端都同步。
客户端发布/订阅 客户端将消息发送到你任意定义的一个组中的客户端,而无需服务器参与。
客户端到服务器 客户端以低延迟将消息发送到服务器。

如何使用 Azure Web PubSub 服务?

可通过多种不同的方式对 Azure Web PubSub 服务编程,下面列出了一些示例:

  • 生成无服务器实时应用程序:使用 Azure Functions 与 Azure Web PubSub 服务的集成,以 JavaScript、C#、Java 和 Python 等语言生成无服务器实时应用程序。
  • 使用 WebSocket 子协议执行仅限客户端的发布/订阅 - Azure Web PubSub 服务提供包括 MQTT 的 WebSocket 子协议,以支持获得授权的客户端方便地发布到其他客户端
  • 使用提供的 SDK 管理自托管应用服务器中的 WebSocket 连接 - Azure Web PubSub 服务提供 C#、JavaScript、Java 和 Python 形式的 SDK 来轻松管理 WebSocket 连接,包括向连接广播消息、向某些组添加连接或关闭连接等。
  • 通过 REST API 将消息从服务器发送到客户端:Azure Web PubSub 服务提供的 REST API 使应用程序能够以任何支持 REST 的编程语言向连接的客户端发送消息。

快速入门

后续步骤

使用这些资源开始生成自己的应用程序: