将客户端事件发送到事件中心

注意

事件侦听器功能目前是作为预览版提供的。 尚不支持将 MQTT 客户端事件发送到事件侦听器。

概述

如果你希望在不透露可公开访问的终结点的情况下侦听客户端事件,可以配置一个包含事件中心终结点的“事件侦听器”规则,以及一个用于指定该侦听器所关注的事件类型的筛选器。 可以同时配置多个事件侦听器。 发生客户端事件时,Web PubSub 服务会同时通知所有相关的事件侦听器。

本教程介绍如何授权 Web PubSub 服务连接到事件中心,以及如何将事件侦听器规则添加到服务设置。

Web PubSub 服务结合使用 Microsoft Entra ID 和托管标识连接到事件中心。 因此,应该启用服务的托管标识,并确保它有适当的权限,可以连接到事件中心。 可将内置的 Azure 事件中心数据发送者角色授予托管标识,使其拥有足够的权限。

若要配置事件中心侦听器,需要:

配置事件侦听器

将托管标识添加到 Web PubSub 服务

从 Azure 门户中查找 Azure Web PubSub 服务。 导航到“标识”。 若要添加系统分配的标识,请在“系统分配”选项卡上,将“状态”切换为“打开”。 选择“保存”。 有关托管标识的详细信息,请参阅 Azure Web PubSub 中的托管标识

在门户中添加系统分配的标识的屏幕截图

为托管标识授予 Azure Event Hubs Data sender 角色

  1. Azure 门户中找到你的 Azure 事件中心资源。 可以选择在事件中心命名空间级别或实体级别授予角色。 以下步骤选择了命名空间级别。

  2. 导航到“访问控制”。 选择“添加角色分配”。 授予对事件中心命名空间的访问权限的屏幕截图

  3. 在“角色”选项卡中选择“Azure 事件中心数据发送者”角色。然后选择“下一步”。 选择“Azure 事件中心数据发送者”角色的屏幕截图

  4. 在“成员”选项卡中,选择为“托管标识”分配访问权限。 选择“选择成员”以选择你的 Web PubSub 服务。 然后,可以选择你的角色分配对应的“查看 + 分配”。 选择 Web PubSub 服务标识的屏幕截图

将事件侦听器规则添加到服务设置

  1. 在 Azure 门户中找到你的服务。 导航到“设置”。 然后选择“添加”以配置事件侦听器。 对于现有中心配置,请在右侧选择“…”以导航到同一编辑页。 Web PubSub 设置的屏幕截图

  2. 然后在下面的编辑页中,需要配置中心名称,并选择“添加”以添加事件侦听器。 配置中心设置的屏幕截图

  3. 在“配置事件侦听器”页上,首先配置事件中心终结点。 可以选择“从订阅中选择事件中心”以选择事件中心,或者直接输入完全限定的命名空间和事件中心名称。 然后选择要侦听的 usersystem 事件。 最后,在完成所有配置后选择“确认”。 配置事件中心侦听器的屏幕截图

使用实时演示测试配置

  1. 打开此事件中心使用者客户端 Web 应用,输入事件中心连接字符串,以便以使用者身份连接到事件中心。 如果从事件中心命名空间资源而不是事件中心实例获取事件中心连接字符串,则需要指定事件中心名称。 此事件中心使用者客户端的连接模式只会读取新事件;此处不会显示以前发布的事件。 可以更改使用者客户端连接模式,以读取生产环境中的所有可用事件。

  2. 使用此 WebSocket 客户端 Web 应用生成客户端事件。 如果已配置为将系统事件 connected 发送到该事件中心,则成功连接到 Web PubSub 服务后,应该可以在事件中心使用者客户端中看到输出的 connected 事件。 还可以使用应用生成用户事件。 事件中心使用者客户端应用中输出的已连接事件的屏幕截图。屏幕截图显示了用于生成用户事件的 WebSocket 客户端应用区域。

后续步骤

在本文中,你已了解事件侦听器的工作原理,以及如何使用事件中心终结点配置事件侦听器。 若要了解发送到事件中心的数据格式,请阅读以下规范。