在不活动一段时间后未发送APNS消息

时间:2013-12-06 10:15:16

标签: php ios sockets apple-push-notifications apns-php

我使用PHP连接到APNS并且通常它工作正常 - 我仍然在沙箱环境中,我还没有使用过生产。我最初使用基于Ray Wenderlich pushchat教程的PHP代码,然后转移到在Ubuntu上运行的ApnsPHP。我的服务器进程建立连接,轮询数据库以查看是否必须发送任何消息,发送它们,稍微睡一会然后再次轮询。

两次尝试都显示了同样的问题。经过一段时间不活动(例如过夜)后,第一条消息将不会发送到设备。没有报告错误,写入套接字的字节数是正确的。但是,当我发送第二条消息时,它会以零字节写入失败。

这是预期的行为吗?我没有在任何地方看到任何具体的参考,虽然Apple建议坚持套接字连接,除非“你知道它会在很长一段时间内闲置”。我的消息是用户活动的结果,因此我无法预测系统是否空闲。

我认为连接在某种程度上已超时,所以有没有办法仔细检查套接字连接的可行性?

我可以考虑解决问题的几种方法,例如重新发送失败前发送的消息,或者监视我的连接闲置多长时间以及在一段时间后重新连接。但如果我这样做了,那会是一段合理的时间吗?

还有其他人看过这个并且有最好的处理方法吗?

0 个答案:

没有答案