如何在 C# 后端设置 Azure 通知中心

How to setup Azure Notification Hub in C# backend

我正在尝试实现我的 C# 后端与通知中心的通信。我已经阅读了几乎所有关于 Azure 通知中心的教程,但我找不到一个像样的教程来解释什么实际上对应于什么。我认为有两种表示设备的方式(据我了解):安装和注册,安装似乎更新且更受欢迎。

但是,当我进入安装时,我的脑海中出现了更多问题:

什么是InstallationId?它是我创造的东西,还是我从某处、设备或 PNS 获得的东西。

是否需要设置ExpirationTime,还是默认为最长(据说最长90天)?如果我希望它超过 90 天怎么办?

什么是PushChannel?就像 InstallationId 一样,是我创造的东西,还是从某处获得的东西?

模板具体是如何使用的?

在所有这些变量中,哪一个是我在客户端获得的实际设备推送令牌?

我通常不会问那种寻求教程式答案并且有多个问题的问题,但我试图到处搜索,但我搜索得越多,就越复杂,我甚至不知道从哪里开始。对于像我一样尝试学习通知中心的任何人来说,任何答案都是一个很好的起点。

InstallationId 是设备 token/key/channel 等之上的抽象。它是 you 在 'install' 设备时创建的唯一 ID (或用户,如果您的 OS/platform 允许多个用户使用单独的令牌)。这是您可以用来将标签、模板等与设备相关联的 ID。您创建一次安装,然后将 ID 保存在本地存储中的某个位置,然后在需要时更新与该 ID 关联的安装。

您不需要明确设置 ExpirationDate。我 认为 过去大多数平台上的令牌都会过期,因此这是一种让通知中心知道何时不尝试推送令牌的方法。我相信现在不是这样了。因此,如果通知中心多次无法向设备发送通知,它只会自行删除注册。

this post on templates有用吗?

PushChannel stands for 'The channel URI if registering the installation for WNS; Device Token if registering for APNS.'

如果我能澄清其中任何一个,请在评论中告诉我,我会更新答案。

除了InstallationNotification,实际上还有第三种选择:DirectSend

Direct-Send 技术比 InstallationNotification 技术 更少 抽象。使用 Direct-Send,您可以将通知直接发送到一个或多个特定设备。基本上你使用实际的 deviceToken- 正如@NikitaG 对 PushChannel 的注释。

如果您需要能够具体决定您的后端应用程序何时推送到特定设备 A 但不是 B 与推送到特定设备 B 但不是 A vs. specific-device-A-and-specific-device-B 根据一些时间表 Direct-Send 可以启用。

我在 Azure Notification Hubs Send Notification to Specific Device 列出了一些讨论 Direct-Send 的资源。