默认
发表评论 7
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
首先纠正理解:MobileIMSDK在首次“登陆/连接”服务器成功后,后面无论是网络有问题还是何种情况导致的掉线,框架这一层都会自动尝试重连,根本不需要你手动去调什么重“登陆”。不理解你为何需要手动调用重新登陆。。。
评论 7
引用:niebiao 发表于 2017-03-07 08:46
@JackJiang 谢谢你的解答,我的服务器我主动把它关闭了(如服务器断电了等不正常因素),Android客户端会 ...

你的代码没有下错。

1问题来了:


如果按照你描述的情况,只要你手机网络正常,只要服务器重新启动,手机端是肯定可以自动连上的。如果照你说的,一直是断开,那显然就有问题了。不过,你可以按照我提供的思路来排查问题原因。

2你可以按照如下方法来排查:


1)使用我的Demo代码(你没有修改任何代码的版本),看看服务端关闭后客户端会不会自动重连:
注意:客户端和服务端都用我的代码。目的是用来排查你客户端和服务端的网络是否有问题,我的demo代码是经过大量测试和使用后验证的结果,所以基本上可以保证能按照设计技术特征正常运行,所以它是个好的参照物。

2)如果1)能正常运行(能自动重连),那么就应该排查你的代码,看看你修改了什么地方,有必要可以贴到论坛;

3)如果1)不能正常运行,那么可能是你的网络有问题,建议排查客户端到服务端的网路、服务端到客户的网络,必须要保证双向都能正常ping通才可以实现im的通信。

3补充提示:


你可以在IDE下查看logcat日志输出,客户端sdk是会打印出各种log的,你有必要把log给贴出来。同样服务端也有log,记得观察log的信息,有必要也贴到论坛。
引用:niebiao 发表于 2017-03-07 15:03
@JackJiang 谢谢你的分析,确实,demo版本的Android 客户端确实是可以重连,但是我把代码导入到Eclipse里 ...

我等会下载你的代码来看看
引用:niebiao 发表于 2017-03-07 17:26
我调试过程中,在AsyncTask中,只是执行了doInBackground方法,而onPostExecute没有执行,没有进入循环
...

是的,这个贴子里好早以前讨论过,看看我7楼的回复:http://www.52im.net/thread-127-1-1.html

你修改的是对的。当时的代码我可能忘记同步到github了,我一会同步上去。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部