Azure Notification Hubs注册生存时间(限制为90天)

ale*_*xey 7 azure push-notification azure-notificationhub

现在我正在使用PushSharp库发送Apple推送通知(通过APNS),但我想迁移到Notification Hubs以获得稳健性和可扩展性.

我打算使用本文所述的后端注册通过Azure通知中心实现发送通知.所以:

  1. iOS客户端在更新推送令牌时会调用后端API的方法.在这个方法中,我使用用户ID进行注册标记.(以前,我将推送令牌存储到DB中的用户链接.)
  2. 当我收到一些特定用户的通知时,我会使用标签(用户ID)发送.(以前,我使用过DB的APNS设备令牌.)

它似乎是一个有效的解决方案,但在Notification Hubs文档中说:

重要的是要注意注册是暂时的.与它们包含的PNS句柄类似,注册过期.您可以在通知中心设置注册的生存时间,最长可达90天.此限制意味着必须定期刷新它们,并且它们不应该是重要信息的唯一存储.此自动过期还可以在卸载移动应用程序时简化清理.

这就是问题所在.有时我需要向尚未更新令牌90天的设备发送通知,等等.因此APNS令牌仍然有效,但Notification Hub的注册将失效.所以我只是失去了用户的沟通渠道.

你怎么处理这个?

当然,我仍然可以在DB中存储令牌,并且可以定期更新注册.但这不是您对通知中心等推送通知解决方案的期望.

Era*_*ran 6

您可以从应用程序或服务器刷新注册.如果您从应用程序执行此操作,则必须由用户启动该应用程序才能刷新注册.

因此,如果您要求设备注册即使对于未启动超过90天的应用程序仍保持活动状态,您必须通过服务器刷新注册,并在服务器中运行可刷新令牌的作业似乎是您唯一的选择.

我同意Notification Hubs决定使令牌失效似乎很奇怪.也许他们考虑过MPNS(微软推送通知服务)通知渠道的行为,这些渠道比APNS设备令牌或GCM注册ID更频繁地过期.


eja*_*azz 4

简单说明一下,因为答案已经有 2 岁了。在这篇博文中, Azure 指出:

值得注意的是,默认情况下注册和安装不再过期。

我认为这会使过期字段变得混乱,但不再是问题了。

更新

较旧的通知中心仍然存在此问题。您需要更新它们以将到期时间设置为无穷大,可以在此论坛帖子中找到说明。新的集线器会自动设置为无穷大。