private IEnumerator FindIdleServerThenConnect() { var url = "http://" + ClientApp.Instance.QueryServerIP + ":" + ClientApp.Instance.ServerHttpPort + "/idleServer"; var www = new WWW(url); yield return(www); if (!string.IsNullOrEmpty(www.error)) { //WorldManager.ReturnCity(); Util.ShowMsg("连接服务器失败"); WorldManager.ReturnCity(); yield break; } var txt = www.text; Log.Sys("FindIdleServer: " + txt); var returnServer = txt.Split(':'); var lb = IPAddress.Parse(returnServer[0]); var ind = returnServer[0].IndexOf("127.0.0.1"); Log.Sys("Remote ServerIP: " + returnServer[0] + " ind " + ind); if (ind != -1) { ClientApp.Instance.remoteServerIP = ClientApp.Instance.QueryServerIP; } else { ClientApp.Instance.remoteServerIP = returnServer[0]; } ClientApp.Instance.remotePort = System.Convert.ToInt32(returnServer[1]); Log.Sys("ConnectRemoteServer: " + ClientApp.Instance.remoteServerIP + " port " + ClientApp.Instance.remotePort); StartCoroutine(InitConnect()); }
void EvtHandler(RemoteClientEvent evt) { Debug.LogError("RemoteClientEvent: " + evt); NetDebug.netDebug.AddMsg("ReceiveEvt: " + evt); lastEvt = evt; if (lastEvt == RemoteClientEvent.Close) { WindowMng.windowMng.ShowNotifyLog("和服务器断开连接:" + state); if (state != WorldState.Closed) { Debug.LogError("ConnectionClosed But WorldNotClosed"); state = WorldState.Closed; //StartCoroutine(RetryConnect()); //StartCoroutine(QuitScene()); WorldManager.ReturnCity(); Util.ShowMsg("断开连接"); } } else if (lastEvt == RemoteClientEvent.Connected) { WindowMng.windowMng.ShowNotifyLog("连接服务器成功:" + state); } }
void OnQuit() { WorldManager.ReturnCity(); }