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); } }
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(); } }