/// <summary> /// 네트워크에서 발생하는 모든 이벤트를 클라이언트에게 알려주는 역할을 Update에서 진행한다. /// FreeNet엔진의 메시지 송수신 처리는 워커스레드에서 수행되지만 유니티의 로직 처리는 메인 스레드에서 수행되므로 /// 큐잉처리를 통하여 메인 스레드에서 모든 로직 처리가 이루어지도록 구성하였다. /// </summary> void Update() { // 수신된 메시지에 대한 콜백. if (this.event_manager.has_message()) { CPacket msg = this.event_manager.dequeue_network_message(); if (this.appcallback_on_message != null) { this.appcallback_on_message(msg); } } // 네트워크 발생 이벤트에 대한 콜백. if (this.event_manager.has_event()) { NETWORK_EVENT status = this.event_manager.dequeue_network_event(); on_status_changed(status); if (this.appcallback_on_status_changed != null) { this.appcallback_on_status_changed(status); } } // heartbeat. if (this.gameserver != null) { ((CRemoteServerPeer)this.gameserver).update_heartbeat(Time.deltaTime); } }
public void EnqueueNetworkEvent(NETWORK_EVENT eventType) { lock (this.csEvent) { this.networkEventQueue.Enqueue(eventType); } }
public void enqueue_network_event(NETWORK_EVENT event_type) { lock (this.cs_event) { this.network_events.Enqueue(event_type); } }
/// <summary> /// 네트워크에서 발생하는 모든 이벤트를 클라이언트에게 알려주는 역할을 Update에서 진행한다. /// FreeNet엔진의 메시지 송수신 처리는 워커스레드에서 수행되지만 유니티의 로직 처리는 메인 스레드에서 수행되므로 /// 큐잉처리를 통하여 메인 스레드에서 모든 로직 처리가 이루어지도록 구성하였다. /// </summary> void Update() { if (this.event_manager == null) { return; } // 수신된 메시지에 대한 콜백. if (this.event_manager.has_message()) { CPacket msg = this.event_manager.dequeue_network_message(); if (this.appcallback_on_message != null) { this.appcallback_on_message(msg); } } // 네트워크 발생 이벤트에 대한 콜백. if (this.event_manager.has_event()) { NETWORK_EVENT status = this.event_manager.dequeue_network_event(); if (this.appcallback_on_status_changed != null) { this.appcallback_on_status_changed(status); } } }
/// <summary> /// 네트워크 상태 변경시 호출될 콜백 매소드. /// </summary> /// <param name="server_token"></param> void on_status_changed(NETWORK_EVENT status) { switch (status) { // 접속 성공. case NETWORK_EVENT.connected: { CLogManager.log("on connected"); this.received_msg += "on connected\n"; // if (SaveServer == false) GetComponent <CMainTitle>().on_connected(); //else // GetComponent<CSaveServerNet>().on_connected(); } break; // 연결 끊김. case NETWORK_EVENT.disconnected: GetComponent <CMainTitle>().on_Disconnected(); CLogManager.log("disconnected"); this.received_msg += "disconnected\n"; Awake(); break; } }
void on_status_changed(NETWORK_EVENT status) { switch (status) { case NETWORK_EVENT.disconnected: this.gameserver = null; break; } }
void on_status_changed(NETWORK_EVENT status) { switch (status) { case NETWORK_EVENT.disconnected: back_to_main(); break; } }
/// <summary> /// 네트워크에서 발생하는 모든 이벤트를 클라이언트에게 알려주는 역할을 Update에서 진행한다. /// FreeNet엔진의 메시지 송수신 처리는 워커스레드에서 수행되지만 유니티의 로직 처리는 메인 스레드에서 수행되므로 /// 큐잉처리를 통하여 메인 스레드에서 모든 로직 처리가 이루어지도록 구성하였다. /// </summary> void Update() { // 수신된 메시지에 대한 콜백. if (this.event_manager.has_message()) { CPacket msg = this.event_manager.dequeue_network_message(); appcallback_on_message?.Invoke(msg); } // 네트워크 발생 이벤트에 대한 콜백. if (this.event_manager.has_event()) { NETWORK_EVENT status = this.event_manager.dequeue_network_event(); appcallback_on_status_changed?.Invoke(status); } }
/// <summary> /// 네트워크 상태 변경시 호출될 콜백 매소드. /// </summary> /// <param name="server_token"></param> void on_status_changed(NETWORK_EVENT status) { switch (status) { // 접속 성공. case NETWORK_EVENT.connected: { Debug.Log("on connected"); GameObject.Find("GameMain").GetComponent <GameMain>().on_connected(); } break; // 연결 끊김. case NETWORK_EVENT.disconnected: Debug.Log("disconnected"); break; } }
void on_status_changed(NETWORK_EVENT status) { switch (status) { case NETWORK_EVENT.connected: { Debug.Log("on connected"); CPacket msg = CPacket.create((short)PROTOCOL.CHAT_MSG_REQ); msg.push("Hello!!!"); this.gameserver.send(msg); } break; case NETWORK_EVENT.disconnected: Debug.Log("disconnected"); break; } }
void on_status_changed(NETWORK_EVENT status) { switch (status) { case NETWORK_EVENT.connected: { CLogManager.log("on connected"); this.txtServerMsg.text = "on connected\n"; GameObject.Find("MainTitle").GetComponent <NetworkTitle>().on_connected(); } break; case NETWORK_EVENT.disconnected: CLogManager.log("disconnected"); this.txtServerMsg.text = "disconnected\n"; break; } }
void Update() { if (this.eventManager.HasMessage() == true) { Packet msg = this.eventManager.DequeueNetworkMessage(); // this.callbackAppReceiveMessage(msg); if (this.callbackAppReceiveMessage != null) { this.callbackAppReceiveMessage(msg); } } if (this.eventManager.HasEvent() == true)//네트워크이벤트는 상대방이 보내주는게 아니라 //서버와 통신하면서 돌아가는 로직에따라 자연스럽게 생김 { NETWORK_EVENT status = this.eventManager.DequeueNetworkEvent(); this.callbackAppStatusChanged(status); } }
private void Update() { if (this.event_manager.has_message()) { CPacket msg = this.event_manager.dequeue_network_message(); if (this.appcallback_on_message != null) { this.appcallback_on_message(msg); } } if (this.event_manager.has_event()) { NETWORK_EVENT status = this.event_manager.dequeue_network_event(); if (this.appcallback_on_status_changed != null) { this.appcallback_on_status_changed(status); } } }
void CallStatusChange(NETWORK_EVENT status) { switch (status) { case NETWORK_EVENT.connected: { //뭐여 이건 //Packet msg = PacketBufferManager.Instance.Pop((short)PROTOCOL.Chat); //msg.Push("Hello~!"); //this.gameserver.Send(msg); } break; case NETWORK_EVENT.disconnected: { } break; } }
/// <summary> /// 네트워크 상태 변경시 호출될 콜백 매소드. /// </summary> /// <param name="server_token"></param> void on_status_changed(NETWORK_EVENT status) { switch (status) { // 접속 성공. case NETWORK_EVENT.connected: { CLogManager.log("on connected"); this.received_msg += "on connected\n"; GameObject.Find("MainTitle").GetComponent <CMainTitle>().on_connected(); } break; // 연결 끊김. case NETWORK_EVENT.disconnected: CLogManager.log("disconnected"); this.received_msg += "disconnected\n"; break; } }
void OnStatusChanged(NETWORK_EVENT status) { switch (status) { // 접속 성공. case NETWORK_EVENT.connected: Debug.Log("on connected"); this.received_msg += "on connected\n"; lastPingTime = DateTime.Now; Application.LoadLevel("Lobby"); break; // 연결 끊김. case NETWORK_EVENT.disconnected: Debug.Log("disconnected"); this.received_msg += "disconnected\n"; break; } }
void on_status_changed(NETWORK_EVENT status) { switch (status) { case NETWORK_EVENT.connected: { CLogManager.log("on connected"); this.received_msg += "on connected\n"; user_state = USER_STATE.CONNECTED; break; } case NETWORK_EVENT.disconnected: { CLogManager.log("disconnected"); this.received_msg += "disconnected\n"; user_state = USER_STATE.NOT_CONNECTED; break; } } }
/// <summary> /// 네트워크 상태 변경시 호출될 콜백 매소드. /// </summary> /// <param name="server_token"></param> void on_status_changed(NETWORK_EVENT status) { switch (status) { // 접속 성공. case NETWORK_EVENT.connected: { CLogManager.log("on connected"); this.received_msg += "on connected\n"; //CPacket msg = CPacket.create((short)PROTOCOL.CHAT_MSG_REQ); //msg.push("Hello!!!"); //this.gameserver.send(msg); } break; // 연결 끊김. case NETWORK_EVENT.disconnected: CLogManager.log("disconnected"); this.received_msg += "disconnected\n"; break; } }
internal CRecvedMsg(NETWORK_EVENT ev) { evt = ev; }
public CRecvedMsg() { evt = NETWORK_EVENT.pkt; }