2

我们有一个推送通知服务器,它为几个不同的应用程序保存数据(设备令牌)。由于 Apple 想要阻止人们使用 UDID 作为标识符,我正在考虑更改此服务器,使其不再依赖 UDID 来识别设备。

我了解 APNs 返回的令牌不是全局唯一的,而是每个设备唯一的。但是,在浏览我们的数据库时,我注意到有几种情况(750k+ 注册有几百个)相同的令牌用于不同的设备

所以我想弄清楚是什么原因造成的。在这一点上,我看到了两种可能性:

  1. 我们的服务器注册处理中有一个模糊的错误
  2. Apple 会回收这些设备令牌(可能是在设备重置之后?)。我们总是存储某个设备的最后一次注册时间,我注意到使用相同令牌的不同设备的注册之间总是至少有几天的时间。据我所知,没有不同设备同时使用的令牌。

如果有人能对此有所了解,我将不胜感激。

4

1 回答 1

4

我们所知道的是,Apple 告诉我们使用设备令牌将通知推送到设备。所以,只要你是:

  1. 每次应用程序启动并在数据库中注册时,查询 APNs 以获得新的设备令牌

  2. 查询非活动设备的反馈服务并将它们从数据库中清除

...您正在做 Apple 期望您做的事情。

但是,我确实怀疑您的注册码中可能存在错误,因为 100/750k 是一个相当高的冲突率。考虑到这些设备令牌用于推送通知,很多人会抱怨收到不属于他们的通知......

于 2012-10-23T15:34:47.677 回答