默认
发表评论 5
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
没看明白你说的问题具体是什么?你的意思是登陆失败后,登陆指令还在重发?
评论 5

你把你服务端登陆失败完整代码贴出来我看看。
另外,把客户端调用和发送完整登陆指令的代码也贴出来我看看
下面的是SDK中关于登陆验证返回后的处理逻辑(当返回的code不为0时即认定登陆失败,会同时close掉socket):
    protected void onServerResponseLogined(Protocal pFromServer) {
        PLoginInfoResponse loginInfoRes = ProtocalFactory.parsePLoginInfoResponse(pFromServer.getDataContent());
        if (loginInfoRes.getCode() == 0) {
             if(!ClientCoreSDK.getInstance().isLoginHasInit()) {
                 ClientCoreSDK.getInstance().saveFirstLoginTime(loginInfoRes.getFirstLoginTime());
             }
            fireConnectedToServer();
        } else {
            Log.d(TAG, "【IMCORE-TCP】登陆验证失败,错误码=" + loginInfoRes.getCode() + "!");

            LocalSocketProvider.getInstance().closeLocalSocket();
            ClientCoreSDK.getInstance().setConnectedToServer(false);
        }

        if (ClientCoreSDK.getInstance().getChatBaseEvent() != null) {
            ClientCoreSDK.getInstance().getChatBaseEvent().onLoginResponse(loginInfoRes.getCode());
        }
    }

所以,正常情况下,不会出现你说的刚才的socket还在重复发登陆数据。

或者,你想表达的问题,不是我理解的这样?
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部