APNS 推送不到和断连接(连接被RST)问题调查
来源:互联网 发布:手机网络提速方法 编辑:程序博客网 时间:2024/06/05 10:09
有很多原因会使APNS断连接,或者推送不到。比如最常见的
- ssl证书类型(开发证书/生产证书/企业证书)和devicetoken不匹配,连接正常,发送推送消息时会被断连接
- devicetoken不对,连接会被断开,如果是带id的请求,会收到错误回复。
- 客户端设备和APNS的连接状态不正常时(也就是客户端没有任何网络连接),APNS只会保存你的app的最后一个推送消息,之前的就丢弃了。
本文不是讨论上面这些常见问题,搜索一下结果非常多。重点如下:
(一) 和APNS保持长连接时,比如过了一晚上,连接会状态异常或者发第一个推送时被断开。
贴个老外的描述:APNs works correctly while there is jobs to processwhen a bad token or another problem occurs, APNs reconnects automaticallyduring the night, after two hours of inactivity, APNs acts like everything works but no notification is actually received by the phone根据帖子里的经验,做了个每半小时定时主动重连APNS连接。之后过一晚上之后连接状态也正常了。但是不久后发现了下面的问题。
(二) 和APNS的连接在一段时间没有消息发出时,也就是有些人说的inactive时,下次再发的第一个推送之后会被断连接,返回104错误。被APNS rst掉。
测试了很多次,发现一旦连接有一段时间没有发消息就会出现这种情况。而且时间不定,时长时短。连接每2-4个小时(2个小时的比较多)左右,连接就会被rst掉,这个是知道的,所以加了定期主动重连,可是发现一段时间空闲再发就被rst的几率非常大,和2小时这个根本不是一回事。而且由于此时没有APNS的错误码返回,不知道是1条消息还是多条消息被APNS丢弃,所以不知道从哪个消息开始重发。找不到解决办法,只能无奈的每次发送推送前判断下和上一次推送消息间隔多长时间,拍脑门的做成超过2分钟空闲再发消息时主动重连一次。有个担心就是不知什么情况下会被当做攻击呢~ 苹果的说明太模糊了~~ 真是耐人寻味。难道是吓死胆小的撑死胆大的?
具体rst的细节可参考Yang兄的这篇《关于苹果推送的问题》http://blog.csdn.net/yangqisheng/article/details/9226191
朋友们谁有比较靠谱的解决方法一定告知小弟呀~~ 期待ing
- APNS 推送不到和断连接(连接被RST)问题调查
- TCP连接异常终止(RST包)
- ios 本地推送和远程推送(APNS)
- 消息推送(APNS)
- APNs 推送原理及问题
- APNs 推送原理及问题
- 苹果推送APNS问题总结
- Git和GitHub连接后无法推送的问题
- 14-TCP 协议(连接异常与RST)
- 解决eclipse连接不到genymotion的问题
- 解决eclipse连接不到genymotion的问题
- 解决eclipse连接不到genymotion的问题
- 解决eclipse连接不到genymotion的问题
- 解决eclipse连接不到genymotion的问题
- 解决eclipse连接不到genymotion的问题
- 关于Xshell连接不到Linux问题汇总
- 连接不到master:50030的问题
- apns原生推送,收不到通知的问题解决
- 实用开源开发工具
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- (程序员面试题)选择排序
- 笑话几则
- linux文件系统相关的几个常用命令
- APNS 推送不到和断连接(连接被RST)问题调查
- Seize the opportunity! 你必须非常努力才能看起来毫不费力
- 实现快速排序算法
- Netfilter(IPv4相关)
- 讨论交流群
- 线性筛选素数法(O(n)复杂度)
- MySQL 字段类型参考
- C++常量折叠
- nyoj756(重建二叉树)