我们有一个推送通知服务器,它保存多个不同应用程序的数据(设备 token )。由于 Apple 希望阻止人们使用 UDID 作为标识符,因此我正在考虑更改此服务器,使其不再依赖 UDID 来识别设备。
我了解 APNs 返回的 token 不是全局唯一的,而是每个设备唯一的。但是,在浏览我们的数据库时,我注意到有几种情况(750k+ 注册数百个)相同的 token 用于不同的设备。
所以我试图找出造成这种情况的原因。在这一点上,我看到了两种可能性:
- 我们在某处处理服务器注册时存在一个不明显的错误
- Apple 会回收这些设备 token (可能在设备重置后?)。我们总是存储某个设备的最后一次注册时间,我注意到使用相同 token 的不同设备的注册之间总是至少有几天的时间。据我所知,没有不同设备同时使用的 token 。
如果有人能对此有所了解,我将不胜感激。
Best Answer-推荐答案 strong>
我们所知道的是 Apple tells us使用设备 token 将通知推送到设备。所以,只要你是:
每次应用程序启动并在数据库中注册时,都在 APNs 中查询新的设备 token
查询非事件设备的反馈服务并从数据库中清除它们
...您正在做 Apple 期望您做的事情。
但是,我确实怀疑您的注册码中可能存在错误,因为 100/750k 是一个相当高的冲突率。考虑到这些设备 token 用于推送通知,很多人会提示收到不属于他们的通知...
关于ios - APNs 重复 token ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/11519435/
|