现在我使用PushSharp库发送Apple推送通知(通过APNS),但我想迁移到Notification Hubs以获得稳健性和可扩展性。
我计划使用this article中所述的后端注册,通过Azure通知中心实施发送通知。所以:
这似乎是一个有效的解决方案,但在Notification Hubs documentation它说:
重要的是要注意注册是暂时的。与它们包含的PNS句柄类似,注册过期。您可以在通知中心设置注册的生存时间,最长可达90天。此限制意味着必须定期刷新它们,并且它们不应该是重要信息的唯一存储。这种自动过期还可以简化卸载移动应用程序时的清理工作。
这就是问题所在。有时我需要向尚未更新令牌90天的设备发送通知,等等。因此APNS令牌仍然有效,但Notification Hub的注册将失效。所以我只是失去了用户的沟通渠道。
你是如何处理的?
当然,我仍然可以在DB中存储令牌,并且可以定期更新注册。但这并不是您对通知中心等推送通知解决方案的期望。
答案 0 :(得分:6)
您可以从应用程序或服务器刷新注册。如果您从应用程序执行此操作,则必须由用户启动该应用程序才能刷新注册。
因此,如果您要求即使对于未启动超过90天的应用程序,设备注册仍然有效,您必须通过服务器刷新注册,并在服务器中运行可刷新令牌的作业似乎是你唯一的选择。
我同意通知中心'让令牌过期的决定似乎很奇怪。也许他们考虑过MPNS(微软推送通知服务)通知渠道的行为,这些渠道比APNS设备令牌或GCM注册ID更频繁地过期。
答案 1 :(得分:3)
快速说明,因为答案是2岁。 In this blogpost Azure声明:
请务必注意,默认情况下注册和安装不会过期。
我认为这会使过期字段混乱,但不再是问题。
更新
较旧的通知中心仍然存在此问题。您需要更新它们以将到期时间设置为无穷大instructions are found in this forum post。新的集线器会自动设置为无穷大。
答案 2 :(得分:0)
根据最新的通知中心文档,此90天限制已延长至生命周期,这意味着您无需在90天后重新注册设备。