Exemplo n.º 1
0
        private void OnSocketConnectStateChanged(ConnectCode connectCode)
        {
            mConnecting = false;
            switch (connectCode)
            {
            case ConnectCode.Connect:
                //掉线重连之后
                if (LoginController.Instance.LoginUser != null)
                {
                    "重新登录中...".ToastOnSubThread();
                    MainActivity.Instance.AddToConsole("重新登录中...", false);
                    mPeer.SendRequest(ESocketParameterTool.NewParameters
                                      .AddOperationCode(OperationCode.Login)
                                      .AddSubCode(SubCode.Login_SignIn)
                                      .AddParameter(ParameterKeys.LOGIN_SIGN_IN_REQUEST,
                                                    new SignInRequestModel(LoginController.Instance.LoginUser.Username,
                                                                           LoginController.Instance.Password)));
                }
                break;

            case ConnectCode.Disconnect:
                //正在重连,不需要再次重连
                if (mIsReconnecting)
                {
                    break;
                }
                mIsReconnecting = true;
                //计算心跳超时时间 +3 是加上消息传输时间
                var seconds = mPeer.LastSendHeartbeatTime.AddSeconds(ESocketConst.HeartbeatTimeout + 3)
                              .GetDifferenceSeconds(TimeUtil.GetCurrentUtcTime(), true);
                if (seconds < 0)
                {
                    Reconnect();
                }
                else
                {
                    $"{seconds}秒后进行重新连接".ToastOnSubThread();
                    //延迟执行,等待服务端检测到客户端掉线,关闭Socket
                    Timer.DelayAction(seconds, Reconnect);
                }
                break;
            }
        }
Exemplo n.º 2
0
 public void OnConnectStateChanged(ConnectCode connectCode)
 {
     MainActivity.Instance.AddToConsole("OnConnectStateChanged:" + connectCode);
     OnSocketConnectStateChanged?.Invoke(connectCode);
 }
Exemplo n.º 3
0
        public void CheckControlCode(ConnectCode code)
        {
            ConnectWindowGenTwo.log.Trace("CheckControlCode code = " + code);
            switch (code)
            {
            case ConnectCode.SSID_NOT_MODIFIED:
                this.modifyWifiSSID();
                return;

            case ConnectCode.SSID_MODIFIED:
                this.connectAdapter();
                return;

            case ConnectCode.INIT_CHECK_ROURTER_FAIL:
                this.connectAdapter();
                return;

            case ConnectCode.BEGIN_CHECK_ROUTER:
                this.BeginCheckControl();
                return;

            case ConnectCode.CHECK_ROUTER_FAIL:
                this.OnCheckRouterConnected(false);
                return;

            case ConnectCode.CHECK_ROUTER_SUCCESS:
                this.OnCheckRouterConnected(true);
                return;

            case ConnectCode.CHECK_ROUTER_SSID_NOT_MODIFIED:
                this.OnCheckRouterSSIDFinish(false);
                return;

            case ConnectCode.CHECK_ROUTER_SSID_MODIFIED:
            case ConnectCode.BEGIN_CHECK_HOST:
            case ConnectCode.CHECK_CABLE_SUCCESS:
                break;

            case ConnectCode.CHECK_HOST_FAIL:
                this.OnCheckHostConnect(false);
                return;

            case ConnectCode.CHECK_HOST_SUCCESS:
                this.OnCheckHostConnect(true);
                return;

            case ConnectCode.CHECK_CABLE_FAIL:
                this.OnCheckCabelConnect(false);
                return;

            case ConnectCode.CHECK_VR_SUCCESS:
                this.OnCheckVR();
                return;

            case ConnectCode.SHOW_GUIDE_IMAGE:
                this.OnShowGuideImage();
                break;

            default:
                return;
            }
        }