/// <summary> /// 连接游戏服务器,设置和服务器连接状态的一些回调 /// </summary> /// <param name="successDelegate"></param> /// <param name="errorhandler"></param> public void ConnectGameServer(TConndSocketEventDelegate successDelegate) { //Debug.LogError("unity ConnectGameServer"); if (mGameServerHandler != null) { mGameServerHandler.Close(); } if (mGameServerHandler == null || mGameServerHandler.IsShutDown()) { //Debug.LogError("unity mGameServerHandler mGameServerHandler.IsShutDown()"); mGameServerHandler = new TConndServerHandler(); this.mConnectSvrSuccessDelegate = successDelegate; mNetworkActive = true; mBClientInConnectSvrStatus = true; //MenuLoading.Create(Localization.instance.Get("Connecting")); RealConnectSvr(ConnecGameSvrSuccessCallback); //StartCoroutine(RealConnectSvr(ConnecGameSvrSuccessCallback)); } else { Debug.LogError("unity ConnectGameServer (mGameServerHandler == null || mGameServerHandler.IsShutDown()) == false"); } }
/// <summary> /// 游戏服务器连接出错回调 /// </summary> /// <param name="stopReason"></param> void GameServerSocketErrorCallBack(int errorCode) { m_bIsReconnecting = false; mConnectSvrSuccessDelegate = null; mBClientInConnectSvrStatus = false; HandleNetworkError(CSMsgResult.NetworkError, errorCode); Invoke("DelayUnlockScreen", 5.0f); }
/// <summary> /// 连接服务器 /// </summary> /// <param name="serverName"></param> /// <param name="port"></param> /// <param name="dataType"></param> public void Connect(string serverName, int port, TConndSocketEventDelegate connectedDelegate, TConndSocketErrorHandleDelegate errorHandleDelegate, float connectTimeout = 5) { mServerState = TConndServerState.StateInit; mConnectedSuccessDelegate = connectedDelegate; mErrorHandleDelegate = errorHandleDelegate; mConnectTimeout = connectTimeout; mSocket = new CSocket(); mSocket.ConnectSocket(serverName, port); mConnectingStartTime = UnityEngine.Time.realtimeSinceStartup; }
void ConnecGameSvrSuccessCallback() { m_bIsReconnecting = false; //Debuger.Log("Connect to srv sucess!!"); if (mConnectSvrSuccessDelegate != null) { mConnectSvrSuccessDelegate(); } mConnectSvrSuccessDelegate = null; mBClientInConnectSvrStatus = false; //UnlockScreen(); }
public void RealConnectSvr(TConndSocketEventDelegate successDelegate) { //Debug.LogError("unity RealConnectSvr"); if (mGameServerHandler != null) { //Debug.LogError("unity mGameServerHandler"); LoginMgr Inst = LoginMgr.Instance; //Debuger.LogError("Connect to srv: [ip:] " + Inst.SvrHost + " [port:]" + Inst.Port); mGameServerHandler.Connect(Inst.SvrHost, Inst.Port, successDelegate, GameServerSocketErrorCallBack, 30); // UI3System.lockScreen(902/*"正在连接..."*/, 10.0f, () => { // UISystemTip.ShowTip(901/*"网络已断开,点击重新连接"*/, ReConnect); // }); } // yield return null; }