public override void Process(UDPBox udpBox, byte[] packageBytes, IPEndPoint ipEndPoint) { mTemplate.Deserialize(packageBytes); switch (mTemplate.Op) { case RequestStringPackage.EOp.Request: var request = mTemplate.Content; UDPBox_GameThreadMediator.Instance.EnqueueToUpdateQueue(() => { var respText = mOnProcessRequest(request); mTemplate.RequestCache = request; mTemplate.Content = respText; mTemplate.Op = RequestStringPackage.EOp.Response; udpBox.SendMessage(mTemplate.Serialize(), ipEndPoint); }); break; case RequestStringPackage.EOp.Response: var content = mTemplate.Content; UDPBox_GameThreadMediator.Instance.EnqueueToUpdateQueue(() => { mOnProcessResponse(mTemplate.RequestCache, mTemplate.Content); }); break; default: break; } }
void OnGUI() { if (GUILayout.Button("Req")) { mTestPackage.Op = RequestStringPackage.EOp.Request; mTestPackage.Content = "hahaha"; if (udpBoxPureContainer != null) { udpBoxPureContainer.UDPBox.SendMessage(mTestPackage.Serialize() , new IPEndPoint(IPAddress.Parse("127.0.0.1"), udpBoxPureContainer.udpBoxBeginPort)); } else { udpboxContainer.UDPBox.SendMessage(mTestPackage.Serialize() , new IPEndPoint(IPAddress.Parse("127.0.0.1"), udpboxContainer.GetRandomUDPBoxPort())); } } }