/// <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);
                }
            }
        }
 public void enqueue_network_event(NETWORK_EVENT event_type)
 {
     lock (this.cs_event)
     {
         this.network_events.Enqueue(event_type);
     }
 }
Beispiel #6
0
    /// <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;
     }
 }
Beispiel #8
0
 void on_status_changed(NETWORK_EVENT status)
 {
     switch (status)
     {
     case NETWORK_EVENT.disconnected:
         back_to_main();
         break;
     }
 }
Beispiel #9
0
        /// <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);
            }
        }
Beispiel #10
0
    /// <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;
        }
    }
Beispiel #11
0
    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;
        }
    }
Beispiel #12
0
    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);
        }
    }
Beispiel #14
0
    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);
            }
        }
    }
Beispiel #15
0
    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;
        }
    }
Beispiel #17
0
    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;
        }
    }
Beispiel #18
0
    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;
        }
        }
    }
Beispiel #19
0
    /// <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;
        }
    }
Beispiel #20
0
 internal CRecvedMsg(NETWORK_EVENT ev)
 {
     evt = ev;
 }
Beispiel #21
0
 public CRecvedMsg()
 {
     evt = NETWORK_EVENT.pkt;
 }