public IEnumerator Download(ProcedureSystem system) { // 如果跳过CDN服务器 if (PatchManager.Instance.SkipCDN) { PatchManager.Log(ELogType.Warning, $"Skip CDN server !"); system.Switch((int)EPatchStates.PatchOver); yield break; } // 获取最新的游戏版本号 { string url = $"{PatchManager.Instance.StrWebServerIP}/GameVersion.php"; PatchManager.Log(ELogType.Log, $"Request game version : {url}"); WebPostRequest download = new WebPostRequest(url); download.PostContent = PatchManager.Instance.AppVersion.ToString(); yield return(download.DownLoad()); //Check fatal if (download.States != EWebRequestStates.Succeed) { download.Dispose(); system.Switch((int)EPatchStates.PatchError); yield break; } string version = download.GetResponse(); PatchManager.Instance.InitGameVesion(version); download.Dispose(); } int newResourceVersion = PatchManager.Instance.GameVersion.Revision; int oldResourceVersion = PatchManager.Instance.SandboxPatchFile.Version; // 检测是否需要重新下载安装包 if (PatchManager.Instance.GameVersion.Major != PatchManager.Instance.AppVersion.Major || PatchManager.Instance.GameVersion.Minor != PatchManager.Instance.AppVersion.Minor) { PatchManager.Log(ELogType.Log, $"Found new APP can be install : {PatchManager.Instance.GameVersion.ToString()}"); PatchManager.SendFoundNewAPPMsg(PatchManager.Instance.GameVersion.ToString()); yield break; } // 检测是否需要下载热更文件 if (newResourceVersion == oldResourceVersion) { PatchManager.Log(ELogType.Log, $"Not found file to download."); system.Switch((int)EPatchStates.PatchOver); } else { PatchManager.Log(ELogType.Log, $"Found new file to download : {newResourceVersion.ToString()}"); system.SwitchNext(); } }
public IEnumerator Download() { // 获取最新的游戏版本号 { string url = _patcher.GetWebServerIP(); string post = _patcher.GetWebPostData(); MotionLog.Log($"Beginning to request from web : {url} {post}"); WebPostRequest download = new WebPostRequest(url, post); download.DownLoad(); yield return(download); //Check fatal if (download.HasError()) { download.ReportError(); download.Dispose(); PatchEventDispatcher.SendGameVersionRequestFailedMsg(); yield break; } string response = download.GetResponse(); MotionLog.Log($"Succeed get response from web : {url} {response}"); _patcher.ParseWebResponseData(response); download.Dispose(); } // 检测强更安装包 if (_patcher.ForceInstall) { string requestedGameVersion = _patcher.RequestedGameVersion.ToString(); MotionLog.Log($"Found new APP can be install : {requestedGameVersion}"); PatchEventDispatcher.SendFoundForceInstallAPPMsg(requestedGameVersion, _patcher.AppURL); yield break; } // 检测资源版本是否变化 int newResourceVersion = _patcher.RequestedResourceVersion; int oldResourceVersion = _patcher.LocalResourceVersion; if (newResourceVersion == oldResourceVersion) { MotionLog.Log($"Resource version is not change."); _patcher.Switch(EPatchStates.DownloadOver.ToString()); } else { MotionLog.Log($"Resource version is change : {oldResourceVersion} -> {newResourceVersion}"); _patcher.SwitchNext(); } }
public IEnumerator Download() { // 获取最新的游戏版本号 { string url = _patcher.GetWebServerIP(); string post = _patcher.GetWebPostData(); PatchHelper.Log(ELogLevel.Log, $"Request game version : {url} : {post}"); WebPostRequest download = new WebPostRequest(url, post); yield return(download.DownLoad()); //Check fatal if (download.States != EWebRequestStates.Success) { download.Dispose(); PatchEventDispatcher.SendGameVersionRequestFailedMsg(); yield break; } string responseData = download.GetResponse(); _patcher.ParseResponseData(responseData); download.Dispose(); } int newResourceVersion = _patcher.RequestedResourceVersion; int oldResourceVersion = _patcher.SandboxPatchManifest.Version; // 检测强更安装包 string appInstallURL = _patcher.GetForceInstallAppURL(); if (string.IsNullOrEmpty(appInstallURL) == false) { PatchHelper.Log(ELogLevel.Log, $"Found new APP can be install : {_patcher.GameVersion.ToString()}"); PatchEventDispatcher.SendFoundForceInstallAPPMsg(_patcher.GameVersion.ToString(), appInstallURL); yield break; } // 检测资源版本是否变化 if (newResourceVersion == oldResourceVersion) { PatchHelper.Log(ELogLevel.Log, $"Resource version is not change."); _patcher.Switch(EPatchStates.DownloadOver.ToString()); } else { PatchHelper.Log(ELogLevel.Log, $"Resource version is change : {oldResourceVersion} -> {newResourceVersion}"); _patcher.SwitchNext(); } }