我正在尝试实施C#后端与Notification Hub的通信。我几乎阅读了有关Azure Notification Hub的每个教程,但我找不到一个体面的教程来解释实际上与什么相对应的内容。我认为有两种表示设备的方式(来自我所理解的):安装和注册,安装似乎更新,更受欢迎。
然而,当我进入安装时,我脑子里会有更多问题:
什么是InstallationId
?这是我创建的东西,还是我从某处获得的东西,无论是设备还是PNS。
我需要设置ExpirationTime
,还是默认为最长(它说90天是最长的)?如果我希望它超过90天怎么办?
什么是PushChannel
?它就像InstallationId
一样,是我创造的东西,还是某个地方的东西?
模板是如何准确使用的?
在所有这些变量中,哪一个是我在客户端获得的实际设备推送令牌?
我通常不会问那些寻求教程答案并且有多个问题的问题,但是我试图在任何地方进行搜索,但我搜索得越多,就会越复杂我甚至不知道从哪里开始。对于任何想要学习通知中心的人来说,任何答案都是一个很好的起点,就像我一样。
答案 0 :(得分:3)
InstallationId
是设备令牌/密钥/通道等之上的抽象。它是您在安装设备时创建的 创建的唯一ID(如果您的操作系统是用户/平台允许多个用户使用单独的令牌)。这是一个可用于将标签,模板等与设备关联的ID。您创建一次安装,然后将id保留在本地存储中的某个位置,然后根据需要更新与id关联的安装。
您无需明确设置ExpirationDate
。我认为过去在大多数平台过去的令牌都是过期的,所以这是一种让Notification Hub知道何时不尝试推送令牌的方法。我相信现在情况并非如此。因此,如果通知中心无法多次向设备发送通知,它只会自行删除注册。
PushChannel
stands for'如果为WNS注册安装,则为通道URI;设备令牌,如果注册APNS。'
如果我能澄清其中的任何内容,请在评论中告诉我,我会更新答案。
答案 1 :(得分:1)
除Installation
和Notification
之外,实际上还有第3个选项:DirectSend
。
Direct-Send
技术的抽象 少于Installation
和Notification
。使用Direct-Send
,您可以直接向一个或多个特定设备发送通知。基本上你使用实际的deviceToken
- 就像@NikitaG为PushChannel
所说的那样。
如果您需要能够明确决定后端应用程序何时推送到特定设备-A-but-not-B而不是推送到特定设备-B-but-not-A vs.根据某些时间表Direct-Send
,特定设备A和特定设备B可以启用。
我在Azure Notification Hubs Send Notification to Specific Device列出了一些讨论Direct-Send
的资源。