sealtalk / sealtalk-android

RongCloud Android SDK Demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

注册两个账号切换账号登陆存在IM无法连接

minorlai opened this issue · comments

commented

切换账号登陆,要登陆两次才成功登陆,第一次无法连接IM服务

在新的 IM SDK 版本中由于考虑到用户负载的问题,同一个设备在切换帐号登录时会引起连接重定向问题, 之前的 SealTalk 版本没有做重定向处理,最新版本已修复了这个问题。
您可以参考最新的 SealTalk 源码中 IMManager#connectIM 以下部分。

           @Override
            public void onError(RongIMClient.ErrorCode errorCode) {
                SLog.e(LogTag.IM, "connect error - code:" + errorCode.getValue() + ", msg:" + errorCode.getMessage());
                if (errorCode == RongIMClient.ErrorCode.RC_CONN_REDIRECTED) {
                    // 重定向错误,直接调用重新连接
                    connectIM(token,getTokenOnIncorrect,callback);
                } else {
                    if (callback != null) {
                        callback.onFail(errorCode.getValue());
                    } else {
                        // do nothing
                    }
                }

            }
commented

在新的 IM SDK 版本中由于考虑到用户负载的问题,同一个设备在切换帐号登录时会引起连接重定向问题, 之前的 SealTalk 版本没有做重定向处理,最新版本已修复了这个问题。
您可以参考最新的 SealTalk 源码中 IMManager#connectIM 以下部分。

           @Override
            public void onError(RongIMClient.ErrorCode errorCode) {
                SLog.e(LogTag.IM, "connect error - code:" + errorCode.getValue() + ", msg:" + errorCode.getMessage());
                if (errorCode == RongIMClient.ErrorCode.RC_CONN_REDIRECTED) {
                    // 重定向错误,直接调用重新连接
                    connectIM(token,getTokenOnIncorrect,callback);
                } else {
                    if (callback != null) {
                        callback.onFail(errorCode.getValue());
                    } else {
                        // do nothing
                    }
                }

            }

我已经升级了最新sdk,和覆盖了IMManager等最新的类,但还是会出现不同账号退出登录的时候,需要点击两次登录才能成功连接IM服务,才能进入app

commented

@jenkinsrc

commented

连接IM服务code=30011 几率很频繁,所以一直连接不成功

commented

image

commented

说明这个是有问题的,我也出现过很多次

30011 的话,可能是连接真失败了,这个需要重新再进行登录。
我们这边也再去看下这个 30011 错误是否由其他的可能去引发。

有什么办法处理呢? 目前很影响用户使用,界面一直处理转圈加载状态