/************************************** * CallBack 방접속 실패시 * parm (retrunCode : ? , message : ?) *****************************************/ public override void OnJoinRoomFailed(short returnCode, string message) { //방참가 실패 joinStatus = NetStatus.JoinRoom; EventConnect?.Invoke(new NetStatusEventMsg(joinStatus, false)); Debug.Log(message); }
void OnConnectRequest(EventConnect data) { Debug.Log("Request connect server."); ClientService.GetSingleton().Connect(ClientID.Frame, data.ip, data.tcpPort, OnConnectSuccess, OnConnectFail); }
/***************************************** * 로비 접속 시도 *****************************************/ public void JoinLobby() { joinStatus = NetStatus.JoinLobby; if (PhotonNetwork.JoinLobby()) { EventConnect?.Invoke(new NetStatusEventMsg(joinStatus, true)); } else { EventConnect?.Invoke(new NetStatusEventMsg(joinStatus, false)); } }
/******************************* * 서버 접속 시도 *******************************/ public void Connect() { joinStatus = NetStatus.JoinServer; if (PhotonNetwork.ConnectUsingSettings()) { EventConnect?.Invoke(new NetStatusEventMsg(joinStatus, true)); } else { EventConnect?.Invoke(new NetStatusEventMsg(joinStatus, false)); } }
/******************************** * 방접속 성공 CallBack **********************************/ public override void OnJoinedRoom() { joinStatus = NetStatus.JoinRoom; EventConnect?.Invoke(new NetStatusEventMsg(joinStatus, true)); if (!isAbleNickName(PhotonNetwork.NickName)) //닉 중복방 접속 불가 { //todo.. 방에 중복닉 알림 Debug.Log("중복 닉 있네"); LeaveRoom(); } }
private void Socket_Connect(IAsyncResult ar) { try { lock (this) { try { if (Socket == null) { return; } Socket.EndConnect(ar); } catch (Exception) { // Nothing to do. } Action <int> resultHandler = (ar.AsyncState as Action <int>); if (Socket.Connected == true) { Activated?.Invoke(this); if (resultHandler != null) { resultHandler(AegisResult.Ok); } else { SpinWorker.Dispatch(() => { EventConnect?.Invoke(new IOEventResult(this, IOEventType.Connect, AegisResult.Ok)); }); } _method.WaitForReceive(); } else { Socket.Close(); Socket = null; if (resultHandler != null) { resultHandler(AegisResult.ConnectionFailed); } else { SpinWorker.Dispatch(() => { EventConnect?.Invoke(new IOEventResult(this, IOEventType.Accept, AegisResult.ConnectionFailed)); }); } } } } catch (Exception e) { Logger.Err(LogMask.Aegis, e.ToString()); } }
/******************************** * Callback * 방 생성 성공시 호출 ************************************/ public override void OnCreatedRoom() { joinStatus = NetStatus.CreateRoom; EventConnect?.Invoke(new NetStatusEventMsg(joinStatus, true)); }