赞
踩
最近项目在生产环境上发现有android手机无法连上推送服务器的现象,导致推送无法正常使用。经过之后项目组一系列的排查之后,基本锁定问题原因,下面就是介绍下问题的现象及排查步骤。
现象
生产环境上,如使用3G/4G网络时Android手机无法收到推送消息。但如果切换到行内wifi时,则能正常收到推送。在测试环境上无此现象,一切正常。
排查流程
1、通过客户端日志发现,在使用3G/4G网络时,手机在连接ejabberd推送服务器时注册失败,并不断重新连接。但具体失败原因从客户端日志中无法确定。
2、然后去查看ejabberd的日志,如下图所示
图1 注册失败日志
从日志上看,并没发现任何报错或异常信息,只是看到ejabberd在收到客户端发送的starttls请求之后再也没收到其他任何请求。
为了对比成功和失败两种情况的日志,我们使用行内wifi,得到如下日志。
图2 注册成功日志(上)
图3 注册成功日志(下)
这两张图是同一个日志的两页,需要连起来看。可以发现在starttls请求之后ejabberd还会收到客户端重新初始化的stream流、用户名密码等信息。
通过比较得出的结论:连接中断是发生在
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。