经常查看APNS的反馈意见?

时间:2012-02-14 15:02:56

标签: ios apple-push-notifications

要检测无效令牌,我应该多久检查一次反馈服务?

我使用APNS服务实现了广播系统。我打开一个连接,发送所有APNS消息,然后断开连接。然后我在广播完成后立即打开反馈连接,并读取任何无效的令牌。

我确实在反馈连接上获得了无效令牌。但是,我的广播通常只会部分成功(某些设备接收而其他设备不接收),当我删除除已知好的令牌以外的所有设备时,我的测试设备会始终收到消息。

我认为这意味着Apple在收到前几个无效令牌后停止广播。

所以我没有正确地听取反馈意见吗?

2 个答案:

答案 0 :(得分:3)

最后,正确处理此问题的唯一方法是转向Apple较新的“增强型通知格式”。此格式允许您为发送的每条消息提供ID,当Apple断开连接时,它们会向您发送错误以及导致错误的消息ID。

这允许客户端正确地重试已发送的消息,并删除无效的令牌

答案 1 :(得分:2)

每次发送推送和删除非活动设备时,都应检查反馈响应。虽然,现在看起来不像你的问题。

您的问题似乎在您的数据库中有一些无效令牌。如果您发送无效令牌,Apple会断开您的连接。发送非活动令牌无效,但如果您发送格式错误/无效令牌,Apple将终止您的套接字。

另一个问题可能是你身边缺少重试计划。您是否实施了任何可以重新打开Apple连接的例程,如果它在您推送时丢失了?您必须预测连接可能会失败,如果确实如此,您必须将其重新启动并再次从您停止的位置开始推送。

你应该寻找的是:

  • 确保您只在数据库中存储VALID令牌
  • 确保您有适当的重试计划
  • 看看Notnoop,它是一个非常简单的Java API,可以为您处理很多事情