首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >APNS的通知发送正确,但没有在一段时间后收到。为什么?

APNS的通知发送正确,但没有在一段时间后收到。为什么?
EN

Stack Overflow用户
提问于 2012-12-11 17:36:40
回答 1查看 897关注 0票数 4

现在已经一个星期了,我正在为我的问题寻找答案,但是我什么也找不到,所以我要在这里问这个问题!

我创建了一个iPhone应用程序,它可以向用户发送通知。因此,我有一个用PHP编码的通知服务器,它使用apns-php (http://code.google.com/p/apns-php/)。

我的服务器可以在任何时候发送通知,因此我有一个无限期运行的工作人员,每当它收到要发送的通知(要发送的通知位于队列中)时,它就发送通知。要做到最快,工作人员有10个可以发送通知的线程。

当我开始工作时,我会收到我应该收到的通知。

问题是,过了一段时间(我不知道是在一段特定的时间之后还是在发送特定数量的通知之后).),我没有收到任何新的通知。当我查看APNS的日志时,什么都没有:所有的消息似乎都被发送到apns服务,没有错误(apns使用了增强的格式)。一旦重新启动该工作人员,我将再次收到通知(但只接收一段时间)。

我在堆栈溢出和Google上搜索过这个问题,到目前为止,我看到的唯一反应是:

  • 在使用的证书/配置文件中存在问题。我知道这不会是问题所在,因为当我开始工作时我会收到通知
  • 我们的数据库中有一些开发设备令牌,这使得APNS关闭了连接。的确,我们的数据库中可能存在一些开发设备令牌,但是当我查看apns代码时,如果连接被关闭,将打开一个新的连接。因此,我不明白这怎么会影响在一个坏的设备令牌之后发送的所有通知。

这个问题真的把我逼疯了,因为通知对我们的服务非常重要。所以,如果有人知道这里的问题是什么,那就真的是拯救生命的人了!

PS:我没有发布任何代码,因为我没有做任何具体的事情。对于要发送的每个通知,我只是使用apns的send()函数。

EN

回答 1

Stack Overflow用户

发布于 2012-12-20 10:12:15

我终于找到了问题的根源:如果在2小时内没有打开到APNS的连接上的活动,则连接超时,APNS关闭连接。

我仍然不明白为什么apns没有检测到连接已经关闭。但是我解决了这个问题,每次在30分钟的不活动状态下发送通知时,我都会自动重新连接到APNS (我本可以选择2个小时,但我只想确保没有问题)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13825507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档