Esempio n. 1
0
 //业务层协议
 public static void BusinessRequest <toc>(IMessage sendMsg, OpCodeType opCodeType, Action <toc> onSuccess,
                                          Action <ErrorInfo> onFail, bool isShowDefaultTip = true) where toc : IMessage <toc>
 {
     WaitManager.BeginRotate();
     WebSocketComponent._instance.SendMsg(sendMsg, opCodeType,
                                          (res) =>
     {
         toc tocRes = (toc)res;
         onSuccess(tocRes);
     },
                                          async(error) =>
     {
         StaticData.DebugGreen(sendMsg.GetType().ToString() + " webErrorCode:" + error.webErrorCode + " ErrorMessage:" + error.ErrorMessage);
         if (isShowDefaultTip)
         {
             var defineErrorCode = StaticData.configExcel.ServerErrorCode.Find(x => x.errorCode == (Company.Cfg.WebErrorCode)error.webErrorCode);
             if (defineErrorCode.isShowTips)
             {
                 StaticData.CreateToastTips($"{defineErrorCode.SimplifiedChinese}");
             }
         }
         else
         {
             onFail(error);
         }
     });
 }
Esempio n. 2
0
        /// <summary>
        /// 开始重新连接 //设置重新链接
        /// </summary>
        private async void StartReconnect(bool isServerClosed = false)
        {
            _isNeedSendHeartBeat = false;

            //服务器关闭 直接退到 登录界面
            if (isServerClosed)
            {
                QuitUILogin();
                return;
            }

            isBeginRetry = true;

            //网络异常提示界面已经打开
            if (_isOpenNetworkAnomalyTips)
            {
                return;
            }

            //判断重连次数
            if (currRetryTimes >= StaticData.configExcel.GetVertical().ReconnectTimer)
            {
                Debug.Log(string.Format("判断重连次数 currRetryTimes = {0}", currRetryTimes));
                //打开提示界面 提示网络异常
                OpenNetworkAnomalyTips();
                return;
            }

            currRetryTimes++;

            //打开等待界面
            WaitManager.BeginRotate();

            //是否有网络
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                //无网络
                //等待重连
                await UniTask.Delay(StaticData.configExcel.GetVertical().ReconnectDelayTime);

                StartReconnect();
                return;
            }

            //重连
            EnterReconnect();
        }