我们有一个推送通知服务器,它保存多个不同应用程序的数据(设备令牌)。由于 Apple 希望阻止人们使用 UDID 作为标识符,我正在考虑更改此服务器,以便它不再依赖 UDID 来识别设备。
据我所知,APN 返回的令牌不是全局唯一的,而是每个设备唯一的。然而,在浏览我们的数据库时,我注意到有几个案例(75 万以上的注册量中有几百个)相同的标记是用来不同的设备.
所以我试图找出造成这种情况的原因。此时,我看到两种可能性:
- 我们的服务器注册处理中存在一个不明显的错误
- Apple 会回收这些设备令牌(可能是在设备重置后?)。我们总是存储某个设备的最后一次注册时间,并且我注意到使用相同令牌的不同设备的注册之间总是至少有几天的时间。据我所知,没有任何令牌同时由不同的设备使用。
如果有人能阐明这一点,我将非常感激。
我们所知道的是苹果告诉我们 http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW2使用设备令牌将通知推送到设备。所以,只要你是:
每次启动应用程序时查询 APN 以获得新的设备令牌并将其注册到数据库中
查询不活动设备的反馈服务并将其从数据库中清除
...您正在做 Apple 希望您做的事情。
但是,我确实怀疑您的注册代码中可能存在错误,因为 100/750k 是相当高的冲突率。考虑到这些设备令牌用于推送通知,很多人会抱怨收到不属于他们的通知......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)