From a9542646c1aed26c620b59d859680884939ba477 Mon Sep 17 00:00:00 2001 From: ALEXTANG <574809918@qq.com> Date: Sat, 20 May 2023 11:01:33 +0800 Subject: [PATCH] Update NetworkChannelHelper.cs --- .../GameLogic/Network/NetworkChannelHelper.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Assets/GameScripts/HotFix/GameLogic/Network/NetworkChannelHelper.cs b/Assets/GameScripts/HotFix/GameLogic/Network/NetworkChannelHelper.cs index 8bddc4af..f3c74efc 100644 --- a/Assets/GameScripts/HotFix/GameLogic/Network/NetworkChannelHelper.cs +++ b/Assets/GameScripts/HotFix/GameLogic/Network/NetworkChannelHelper.cs @@ -102,10 +102,11 @@ namespace GameLogic /// 反序列化后的消息包头。 public IPacketHeader DeserializePacketHeader(Stream source, out object customErrorData) { - // TODO // 注意:此函数并不在主线程调用! customErrorData = null; - return null; //(IPacketHeader)RuntimeTypeModel.Default.Deserialize(source, MemoryPool.Acquire(), typeof(PacketHeader)); + PacketHeader packetHeader = MemoryPool.Acquire(); + packetHeader.PacketLength = ((MemoryStream)source).GetBuffer()[0]; + return packetHeader; } /// @@ -130,14 +131,14 @@ namespace GameLogic CSPkg csPkg = null; if (scPacketHeader.IsValid) { - Type packetType = GetServerToClientPacketType(scPacketHeader.Id); - if (packetType != null) + try { - csPkg = global::ProtobufUtility.Deserialize(((MemoryStream)source).GetBuffer());; + csPkg = global::ProtobufUtility.Deserialize(((MemoryStream)source).GetBuffer(),0,scPacketHeader.PacketLength); + Log.Debug("[s-c] CmdId[{0}]\n{1}", csPkg.Head.MsgId, csPkg.ToString()); } - else + catch (Exception e) { - Log.Warning("Can not deserialize packet for packet id '{0}'.", scPacketHeader.Id.ToString()); + Log.Warning(e); } } else