什么是 Azure 通知中心?

Azure 通知中心 提供易于使用和横向扩展的推送引擎,使你能够从任何后端(云或本地)将通知发送到任何平台(iOS、Android、Windows 等)。 通知中心适用于企业和消费者场景。 下面是几个示例方案:

  • 将突发新闻通知发送到数百万,延迟较低。
  • 将基于位置的优惠券发送到感兴趣的用户细分。
  • 向媒体/体育/金融/游戏应用程序的用户或组发送与事件相关的通知。
  • 将促销内容推送到应用程序以吸引和营销客户。
  • 通知用户企业事件,例如新消息和工作项。
  • 发送多重身份验证的代码。

什么是推送通知?

推送通知是一种应用到用户的通信形式,其中移动应用的用户会收到某些所需信息的通知,通常位于移动设备上的弹出或对话框中。 用户通常选择查看或关闭邮件;选择前者会打开传达通知的移动应用程序。 某些通知是静默的 - 在幕后传递,使应用能够处理并决定要执行的操作。

推送通知对于消费者应用在增加应用参与度和使用情况方面至关重要,对于企业应用而言,在传达 up-to日期业务信息方面至关重要。 这是最佳的应用到用户通信,因为它对移动设备具有节能性,对通知发送方灵活,在相应的应用程序不处于活动状态时可用。

备注

Azure 通知中心未正式支持通过 Internet 协议(VOIP)推送通知;但是,本文介绍如何通过 Azure 通知中心 使用 APNS VOIP 通知

有关几个常用平台的推送通知的详细信息,请参阅以下主题:

推送通知的工作原理是什么?

推送通知通过特定于平台的基础结构(称为 平台通知系统 (PNS)传递。 它们提供基本的推送功能,用于将消息传送到具有提供的句柄的设备,并且没有通用接口。 若要向应用 Android、iOS 和 Windows 版本中的所有客户发送通知,开发人员必须与 Apple 推送通知服务(APNS)、Firebase Cloud Messaging(FCM)和 Windows 通知服务(WNS)分开工作。

从较高层面讲,推送的工作原理如下:

  1. 应用程序希望接收通知,因此会联系运行时所在的目标平台的 PNS 并请求唯一的临时推送句柄。 句柄类型取决于系统(例如,WNS 使用 URI,而 APNS 使用令牌)。
  2. 客户端应用将此句柄存储在应用后端或提供程序中。
  3. 若要发送推送通知,应用后端使用句柄联系 PNS 以面向特定客户端应用。
  4. PNS 将通知转发到句柄所指定的设备。

推送通知工作流

推送通知的挑战

PNS 非常强大。 但是,他们将大量工作留给应用开发人员来实现甚至常见的推送通知方案,例如将推送通知广播给分段用户。

发送推送通知需要与应用程序的主要业务逻辑无关的复杂基础结构。 一些基础结构挑战包括:

  • 平台依赖项
    • 后端需要复杂且难以维护的平台相关逻辑才能将通知发送到各种平台上的设备,因为 PNS 并不统一。
  • 比例
    • 根据 PNS 准则,必须在每次应用启动时刷新设备令牌。 仅仅是为了保持令牌的最新状态,后端就必须处理大量的流量和数据库访问。 当设备数量增加到数百、数千或数百万时,创建和维护此基础结构的成本是巨大的。
    • 大多数 PNS 不支持广播到多个设备。 仅仅是广播到 100 万台设备就需要对 PNS 发出 100 万次调用。 以最小延迟扩展此流量是具有挑战性的。
  • 路由
    • 尽管 PNS 提供了向设备发送消息的方法,但大多数应用通知都针对用户或兴趣组。 后端必须维护注册表,以便将设备与兴趣组、用户、属性等相关联。这种开销增加了应用的市场和维护成本的时间。

为何使用 Azure 通知中心?

通知中心消除了与从应用后端自行发送推送通知相关的所有复杂性。 其多平台横向扩展推送通知基础结构可减少与推送相关的编码并简化后端。 使用通知中心时,设备只需负责向中心注册其 PNS 句柄,而后端向用户或兴趣组发送消息,如下图所示:

通知中心关系图

通知中心是随时可用的推送引擎,具有以下优点:

  • 跨平台
    • 支持所有主要的推送平台。
    • 一个通用接口,用于以平台专属或跨平台的格式推送到所有平台,无需进行平台特定的操作。
    • 在一个位置管理设备句柄。
  • 跨后端
    • 云或本地。
    • .NET、Node.js、Java、Python 等。
  • 丰富的交付模式集
    • 广播到一个或多个平台:可以使用单个 API 调用跨平台立即广播到数百万台设备。
    • 推送到设备:可以将通知定向到单个设备。
    • 推送到用户:标记和模板可帮助你访问用户的所有跨平台设备。
    • 使用动态标记推送到目标段:可以借助标记功能根据需要将设备分段并向其推送通知,不管是要发送到一个段还是段的表达式(例如,active AND lives in Seattle NOT new user)。 现在你可以随时随地更新设备标记,而不是只局限于发布-订阅。
    • 本地化推送:模板功能有助于实现本地化,而不会影响后端代码。
    • 静默推送:可以通过向设备发送静默通知并触发设备完成特定的拉取或操作,来实现推送-拉取模式。
    • 计划推送:可以计划随时发送通知。
    • 直接推送:您可以跳过在通知中心服务中注册设备,直接向设备标识列表进行批量推送。
    • 个性化推送:可以借助设备推送变量,使用自定义的键值对发送设备特定的个性化推送通知。
  • 可伸缩性
    • 在不重新构建或设备分片的情况下,将快速消息发送到数百万台设备。
  • 安全性
    • 共享访问机密(SAS)或联合身份验证。