你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 通信服务聊天 SDK 和呼叫 SDK 创建实时消息传送通道,使信号消息能够以高效、可靠的方式推送到连接的客户端。 借助此功能,你可以将丰富的实时通信功能构建到应用程序中,而无需实现复杂的 HTTP 轮询逻辑。 但是,在移动应用程序中,此信号通道仅当应用程序在前台处于活动状态时才保持连接状态。 如果希望用户在应用程序处于后台时接收传入呼叫或聊天消息,则应使用推送通知。
推送通知使你能够将信息从应用程序发送到用户的移动设备。 可以使用推送通知显示对话、播放声音或显示传入呼叫 UI。 Azure 通信服务提供与 Azure 事件网格和 Azure 通知中心的集成,使你可以向应用添加推送通知。
通过 Azure 事件网格触发推送通知
Azure 通信服务与 Azure 事件网格集成,从而以可靠、可缩放且安全的方式提供实时事件通知。 可以使用此集成创建一个通知服务,该服务通过创建触发 Azure 函数 或 Webhook 的事件网格订阅向用户传递移动推送通知。
详细了解 Azure 通信服务中的事件处理。
通过 Azure 通知中心传递推送通知
重要说明
Azure 通知中心宣布,Firebase Cloud Messaging (FCM) 旧版 API 已于 2024 年 7 月弃用。 这会影响发送 Android 推送通知的所有 Azure 通信服务呼叫和聊天应用程序。 受影响的客户需要将其注册从 FCM 旧版迁移到 FCM v1,并且可以在 2024 年 3 月开始这样做。 有关包括迁移步骤的详细信息,请参阅 通知中心文档。
可以将 Azure 通知中心连接到通信服务资源,以便在收到传入呼叫时自动向用户的移动设备发送推送通知,或者向用户通知错过的聊天活动。 你应使用这些推送通知从后台唤醒你的应用程序,并显示让用户接受或拒绝呼叫的 UI,或者读取新收到的聊天消息。
通信服务使用 Azure 通知中心作为直通服务,以便使用直接发送 API 与各种特定于平台的推送通知服务进行通信。 使用此功能,可以重复使用现有的 Azure 通知中心资源和配置,以向应用程序提供低延迟、可靠的通知。
注意
目前,Android 和 iOS 都支持呼叫和聊天推送通知。
通知中心预配
若要使用通知中心将推送通知传递到客户端设备,请在与通信服务资源相同的订阅中创建通知中心。 必须为想要使用的平台通知系统配置 Azure 通知中心。 若要了解如何从通知中心获取客户端应用程序中的推送通知,请参阅通知中心入门,并从页面顶部附近的下拉列表中选择目标客户端平台。
注意
目前支持 APN 和 FCM 平台。
APN 平台需要使用令牌身份验证模式进行配置。 目前不支持证书身份验证模式。
通知中心配置完成后,便可以使用 Azure 资源管理器客户端或通过 Azure 门户为中心提供连接字符串,从而将它关联到通信服务资源。 连接字符串应包含 Send 权限。 建议专门为中心另外创建一个仅具有 Send 权限的访问策略。 详细了解通知中心安全和访问策略
使用 Azure 资源管理器客户端链接通知中心
若要登录 Azure 资源管理器,请执行以下操作并使用你的凭据登录。
armclient login
成功登录后,请执行以下操作来预配通知中心:
armclient POST /subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.Communication/CommunicationServices/<resource_id>/linkNotificationHub?api-version=2020-08-20-preview "{'connectionString': '<connection_string>','resourceId': '<resource_id>'}"
使用 Azure 门户链接通知中心
在门户中,转到 Azure 通信服务资源。
在通信服务资源中,从“通信服务”页左侧菜单中选择“推送通知”,并连接之前预配的通知中心。
选择“连接通知中心”。 可以看到可用于连接的通知中心列表。
选择要用于此资源的通知中心。
- 如需创建新的中心,请选择“新建通知中心”以获取为此资源预配的新中心。
现在,你将看到已与连接状态关联的通知中心。
如要为资源使用不同的中心,请选择“断开连接”,然后重复上述步骤以链接不同的通知中心。
注意
有关中心链接方式的任何更改最多只需 10 分钟即会反映在数据平面(即发送通知时)中。 如果在更改之前发送了通知,则在第一次连接中心时,系统会应用此相同行为。
设备注册
请参阅语音呼叫快速入门和聊天快速入门,以了解如何向通信服务注册设备句柄。
推送通知疑难解答指南
当您在设备上看不到推送通知时,通知可能会在以下三个位置丢失:
- Azure 通知中心未接受来自 Azure 通信服务的通知
- 平台通知系统(例如 APNs 和 FCM)未接受来自 Azure 通知中心的通知
- 平台通知系统未将通知传递到设备。
以下说明介绍了可以删除通知的第一个位置(Azure 通知中心不接受来自 Azure 通信服务的通知)。 有关详细信息,请参阅 诊断 Azure 通知中心中删除的通知。
若要查看通信服务资源是否将通知发送到 Azure 通知中心,一种方法是查看链接的 Azure 通知中心指标中的 incoming messages 指标。
下面是一些常见的错误配置,它们可能是 Azure 通知中心不接受来自通信服务资源的通知的原因。
Azure 通知中心未链接到通信服务资源
可能存在你没有将 Azure 通知中心链接到通信服务资源的情况。 可查看通知中心预配部分,了解如何链接它们。
已链接的 Azure 通知中心未配置
必须通过要使用的平台(例如 iOS 或 Android)的平台通知系统凭据来配置已链接的通知中心。 若要更详细地了解如何执行此操作,请参阅在通知中心设置推送通知。
已链接的 Azure 通知中心不存在
链接到通信服务资源的 Azure 通知中心不复存在。 请检查已链接的通知中心是否仍然存在。
Azure 通知中心 APNs 平台已配置有证书身份验证模式
如果想要将 APN 平台与证书身份验证模式配合使用,则目前不支持它。 应为 APNs 平台配置在通知中心设置推送通知中指定的令牌身份验证模式。
已链接的连接字符串没有 Send 权限
用于将通知中心链接到通信服务资源的连接字符串需要具有 Send 权限。 有关如何创建新的连接字符串或查看 Azure 通知中心的当前连接字符串的详细信息,请参阅 通知中心安全性和访问策略
已链接的连接字符串或 Azure 通知中心 resourceId 无效
请确保为通信服务资源配置了正确的连接字符串和 Azure 通知中心 resourceId
已重新生成链接的连接字符串
如果重新生成了链接的 Azure 通知中心的连接字符串,则需通过重新链接通知中心,在通信服务资源中更新连接字符串。
Next steps
- 有关 Azure 事件网格的简介,请参阅什么是事件网格?。
- 若要详细了解 Azure 通知中心的概念,请参阅 Azure 通知中心文档。