APNS Apple 推送通知令牌过时并停止工作

Posted

技术标签:

【中文标题】APNS Apple 推送通知令牌过时并停止工作【英文标题】:APNS Apple Push Notification token goes stale and stops working 【发布时间】:2013-03-07 16:00:53 【问题描述】:

有谁知道什么会导致 Apple 推送通知令牌过时?一段时间后,推送令牌不再适用于给定设备,而其他令牌则有效。如果我为该设备删除该帐户并为该设备创建一个新帐户并从 Apple 接收新的 Push 令牌,则新的 Push 令牌可以正常工作。

编辑 1 - 这个post 声称推送通知连接在 200 个通知后失败,并且必须重新启动连接。有其他人有过这种经历吗?

Push 令牌是否会因为 Apple 发现该设备的 Push 连接在给定时间段内频繁启动和关闭而过时?如果是这样,是否有某种方法可以以编程方式知道 Push 令牌何时过时?

【问题讨论】:

【参考方案1】:

您的应用程序应在每次启动时注册推送通知。这样,您每次启动时都会获得当前设备令牌,如果它发生变化(您可以将旧副本存储在应用程序中以了解这一点),您可以将其发送到您的服务器。

您可以从 APNS 指南 here 中看到相关的答案。

【讨论】:

每次启动应用程序时,我都会在网站上存储当前的推送通知令牌。但是推送通知在一台设备上停止工作,它通常是我经常使用的设备。这让我认为 Apple 由于某些使用违规行为而停止了该推送令牌的工作。只是不确定该违规是什么以及如何以编程方式确定发生了违规。 在达到限制之前有多少条消息,您的应用是在前台还是后台?也许 Apple 会限制每个(设备、应用)组合的后台通知率。 不幸的是,我不知道在达到限制之前我发送了多少条消息,但很容易达到 200 条。我在一台设备上进行了大量测试,我发送了大约 5 条消息每次测试,所以很可能我达到了 200 条消息的限制。

以上是关于APNS Apple 推送通知令牌过时并停止工作的主要内容,如果未能解决你的问题,请参考以下文章

PHP 代码如何将 APNS 设备令牌用于 Apple 推送通知?

iOS:生产推送通知,来自 APNS 服务器的无效令牌

Apple 推送通知服务 (APNS):反馈服务响应缺少字节?

Apple 反馈服务和推送通知错误

取消订阅 Apple 推送通知服务

从 Apple APNS 接收设备令牌所需的时间