Android集成融云IM走过的坑(一):项目登陆后,重新打开app,与融云断开连接的解决方案

项目需要集成融云的IM,所以就硬着头皮上了。

基本的快速集成,看官网教程就足够了,链接:http://www.rongcloud.cn/docs/android.html#快速集成

断开链接的重连:

本项目背景:首次打开,在app登陆的时候顺便与融云服务器链接,调用RongIM.connect()方法即可。

由于本人知识水平的限制,以为在登陆app的时候顺便链接融云就可以了,但实际上是当你本地第一次运行的时候是没问题的。但是当重新打开app的时候,会显示“无法连接服务器”

看了好久的官方文档还是毫无头绪,又提交了好几次工单,看了知识库的问题,基本上工作人员给出的解决方案都是用RongIMClient.ConnectionStatusListener跟踪一下状态。一开始看或许很困难,但是要有耐心,下面附上截图:



可以看出,连接状态的枚举有7种,DISCONNECTEDTED是断开连接。接下来就好办啦!请看下面:

断网重连的直观方法:

第一步:先判断一下是否是断开连接的状态,代码:

            if(RongIM.getInstance().getRongIMClient().getCurrentConnectionStatus()

                               ==RongIMClient.ConnectionStatusListener.ConnectionStatus.DISCONNECTED){

                          重连的代码;

                           ..............

                    }

第二步:重新向server端请求token(或者使用第一次登陆的token)

第三步:重连。就是再一次调用RongIM.connect()方法


请看完整代码:


public voidreconnect(){

ACacheaCache=ACache.get(this);

Stringid=aCache.getAsString("idnumber");

if(RongIM.getInstance().getRongIMClient().getCurrentConnectionStatus()

==RongIMClient.ConnectionStatusListener.ConnectionStatus.DISCONNECTED) {

HttpUtil.httppost(Server_parameter.REGETRMTOKRN_URL,Json_helper.parseHomeworkJson(id), newHttpUtil.QueryCallback() {

@Override

publicString handleResult(byte[]result) {

try{

Stringresultjson= newString(result,"utf-8");

Stringtoken=Json_helper.parseRMToken(resultjson);

RongIM.connect(token, newRongIMClient.ConnectCallback() {

@Override

public voidonTokenIncorrect() {

}

@Override

public voidonSuccess(Strings) {

Log.i("TAG","重连成功:"+s);

}

@Override

public voidonError(RongIMClient.ErrorCodeerrorCode) {

Log.e("TAG","重连失败:"+errorCode);

}

});

}catch(UnsupportedEncodingExceptione) {

e.printStackTrace();

}

return null;

}

});

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 以流的方式处理IM通讯问题好处是无需多次建立连接,另外消息的网络开销少,而xmpp会有很多冗余的信息; 使用开源项...
    sea777777阅读 2,344评论 0 8
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,888评论 0 15
  • 【感悟】 “教是最好的学”,分享内容在干货之外,还可考虑从以下几方面做提升:1)标题党很重要,好的标题激发人的兴趣...
    1军哥嘹亮阅读 324评论 0 0
  • 如果每天都是一样的,那我们其实没有什么进步,那么你梦中的美好将来是不会到来的。想要到达那个点必须进步必须努力,这些...
    风流花吹雪阅读 191评论 0 1