//业务层协议 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); } }); }
/// <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(); }