现在已经一个星期了,我正在为我的问题寻找答案,但是我什么也找不到,所以我要在这里问这个问题!
我创建了一个iPhone应用程序,它可以向用户发送通知。因此,我有一个用PHP编码的通知服务器,它使用apns-php (http://code.google.com/p/apns-php/)。
我的服务器可以在任何时候发送通知,因此我有一个无限期运行的工作人员,每当它收到要发送的通知(要发送的通知位于队列中)时,它就发送通知。要做到最快,工作人员有10个可以发送通知的线程。
当我开始工作时,我会收到我应该收到的通知。
问题是,过了一段时间(我不知道是在一段特定的时间之后还是在发送特定数量的通知之后).),我没有收到任何新的通知。当我查看APNS的日志时,什么都没有:所有的消息似乎都被发送到apns服务,没有错误(apns使用了增强的格式)。一旦重新启动该工作人员,我将再次收到通知(但只接收一段时间)。
我在堆栈溢出和Google上搜索过这个问题,到目前为止,我看到的唯一反应是:
这个问题真的把我逼疯了,因为通知对我们的服务非常重要。所以,如果有人知道这里的问题是什么,那就真的是拯救生命的人了!
PS:我没有发布任何代码,因为我没有做任何具体的事情。对于要发送的每个通知,我只是使用apns的send()函数。
发布于 2012-12-20 10:12:15
我终于找到了问题的根源:如果在2小时内没有打开到APNS的连接上的活动,则连接超时,APNS关闭连接。
我仍然不明白为什么apns没有检测到连接已经关闭。但是我解决了这个问题,每次在30分钟的不活动状态下发送通知时,我都会自动重新连接到APNS (我本可以选择2个小时,但我只想确保没有问题)。
https://stackoverflow.com/questions/13825507
复制相似问题