Apple反馈服务(APNS)很慢

时间:2011-07-28 10:12:27

标签: php apple-push-notifications feedback

我已经为使用PHP的iPhone应用程序编写了推送通知(APNS,Apple推送通知服务)。一切都工作正常,而没有从设备中删除应用程序。我使用Apple的 Feedback Service 来获取已删除的设备。如果我收到设备,我会在我的数据库中将它们标记为 INACTIVE ,以便不再向这些设备发送推送通知。

问题是Apple很慢。如果您从设备中删除该应用程序,则会向Apple发送请求,并使用反馈服务收集设备。但Apple并未立即转发未激活的设备,因此我收到以下错误,因为我无法将推送通知发送到非活动设备:

PHP Warning: fwrite(): SSL: Broken pipe in apns.php on line 155

我的反馈服务脚本每5分钟运行一次,但Apple的更新每10-15分钟一次。如果我在10-15分钟内发送推送通知,则会出现上述错误,因为在数据库中设备仍标记为 ACTIVE ,而在Apple服务器上,设备标记为 INACTIVE

连接到反馈服务或推送服务没有问题,但我并不总是从反馈服务中获取设备。

电贺, TheFox

1 个答案:

答案 0 :(得分:1)

来自Apple.com开发者论坛(https://devforums.apple.com/thread/114446)的回答:

您的服务器需要检测断开连接并在必要时重新连接。在涉及网络时,没有什么是“即时的”;总有一些延迟和代码需要考虑到这一点。 另外,请考虑使用增强型二进制接口,以便检查返回响应并了解连接被删除的原因。由于TCP保持活动状态,也可以删除连接,这超出了Apple的控制范围。

如果服务器检测到断开连接,我会将所有设备设置为 INACTIVE