Esempio n. 1
0
    public void OnReceiveData(byte[] data)
    {
        try
        {
            UdplDataModel model = UdpMessageCodec.decode(data);
            switch (model.Request)
            {
            case RequestByte.REQUEST_HEART:
                udpHeratTime = DateTime.Now;
                break;

            case RequestByte.REQUEST_AUDIO:
                ReceivedAudioDataQueue.Enqueue(model.Message);
                break;

            case RequestByte.REQUEST_VIDEO:
                ReceivedVideoDataQueue.Enqueue(model.Message);
                break;
            }
        }
        catch (Exception e)
        {
            print("ReceivedDataQueue decode error:" + e.Message + "," + e.StackTrace);
        }
    }
Esempio n. 2
0
    private void FixedUpdate()
    {
        if (isRunning && (DateTime.Now - UdpHeratTime).TotalSeconds > UdpOutTime)
        {
            print("udp心跳超时!!!");
            ChatUIManager._instance.Hang();
        }

        if (ReceivedDataQueue.Count > 0)
        {
            try
            {
                UdplDataModel model = UdpMessageCodec.decode(ReceivedDataQueue.Dequeue());
                switch (model.Request)
                {
                case RequestByte.REQUEST_HEART:
                    UdpHeratTime = DateTime.Now;
                    break;

                case RequestByte.REQUEST_STREAM:
                    ChatDataHandler.Instance.ReceiveStreamRemote(model.Message);
                    break;

                case RequestByte.REQUEST_AUDIO:
                    ChatDataHandler.Instance.ReceiveAudio(model.Message);
                    break;

                case RequestByte.REQUEST_VIDEO:
                    ChatDataHandler.Instance.ReceiveVideo(model.Message);
                    break;
                }
            }
            catch (Exception e)
            {
                print("ReceivedDataQueue decode error:" + e.Message + "," + e.StackTrace);
            }
        }
        if (ReceivedDataQueue.Count > 5)
        {
            ReceivedDataQueue.Clear();
        }
    }