diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/INetworkChannelHelper.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/INetworkChannelHelper.cs index 17654155..c607e09f 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/INetworkChannelHelper.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/INetworkChannelHelper.cs @@ -47,21 +47,12 @@ namespace TEngine.Runtime /// 是否序列化成功。 bool Serialize(MainPack packet, Stream destination); - /// - /// 反序列化消息包头。 - /// - /// 要反序列化的来源流。 - /// 用户自定义错误数据。 - /// 反序列化后的消息包头。 - IPacketHeader DeserializePacketHeader(Stream source, out object customErrorData); - /// /// 反序列化消息包。 /// - /// 消息包头。 /// 要反序列化的来源流。 /// 用户自定义错误数据。 /// 反序列化后的消息包。 - MainPack DeserializePacket(IPacketHeader packetHeader, Stream source, out object customErrorData); + MainPack DeserializePacket(Stream source, out object customErrorData); } } \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/IPacketHeader.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/IPacketHeader.cs deleted file mode 100644 index 48877019..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/IPacketHeader.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace TEngine.Runtime -{ - /// - /// 网络消息包头接口。 - /// - public interface IPacketHeader - { - /// - /// 获取网络消息包长度。 - /// - int PacketLength - { - get; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/IPacketHeader.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/IPacketHeader.cs.meta deleted file mode 100644 index 888bf894..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/IPacketHeader.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 1a61d331daf74fe48bffbb083f016cb5 -timeCreated: 1661771898 \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.NetworkChannelBase.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.NetworkChannelBase.cs index 1f1b932b..8f9f2d89 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.NetworkChannelBase.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.NetworkChannelBase.cs @@ -600,54 +600,6 @@ namespace TEngine.Runtime { } - protected virtual bool ProcessPacketHeader() - { - try - { - object customErrorData = null; - IPacketHeader packetHeader = m_NetworkChannelHelper.DeserializePacketHeader(m_ReceiveState.Stream, out customErrorData); - - if (customErrorData != null && NetworkChannelCustomError != null) - { - NetworkChannelCustomError(this, customErrorData); - } - - if (packetHeader == null) - { - string errorMessage = "Packet header is invalid."; - if (NetworkChannelError != null) - { - NetworkChannelError(this, NetworkErrorCode.DeserializePacketHeaderError, SocketError.Success, errorMessage); - return false; - } - - throw new Exception(errorMessage); - } - - m_ReceiveState.PrepareForPacket(packetHeader); - if (packetHeader.PacketLength <= 0) - { - bool processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - return processSuccess; - } - } - catch (Exception exception) - { - m_Active = false; - if (NetworkChannelError != null) - { - SocketException socketException = exception as SocketException; - NetworkChannelError(this, NetworkErrorCode.DeserializePacketHeaderError, socketException != null ? socketException.SocketErrorCode : SocketError.Success, exception.ToString()); - return false; - } - - throw; - } - - return true; - } - protected virtual bool ProcessPacket() { lock (m_HeartBeatState) @@ -658,7 +610,7 @@ namespace TEngine.Runtime try { object customErrorData = null; - MainPack packet = m_NetworkChannelHelper.DeserializePacket(m_ReceiveState.PacketHeader, m_ReceiveState.Stream, out customErrorData); + MainPack packet = m_NetworkChannelHelper.DeserializePacket(m_ReceiveState.Stream, out customErrorData); if (customErrorData != null && NetworkChannelCustomError != null) { diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.ReceiveState.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.ReceiveState.cs index 478b492b..59873ad3 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.ReceiveState.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Core/NetworkManager.ReceiveState.cs @@ -9,13 +9,11 @@ namespace TEngine.Runtime { private const int DefaultBufferLength = 1024 * 64; private MemoryStream m_Stream; - private IPacketHeader m_PacketHeader; private bool m_Disposed; public ReceiveState() { m_Stream = new MemoryStream(DefaultBufferLength); - m_PacketHeader = null; m_Disposed = false; } @@ -27,27 +25,9 @@ namespace TEngine.Runtime } } - public IPacketHeader PacketHeader - { - get - { - return m_PacketHeader; - } - } - public void PrepareForPacketHeader(int packetHeaderLength) { - Reset(packetHeaderLength, null); - } - - public void PrepareForPacket(IPacketHeader packetHeader) - { - if (packetHeader == null) - { - throw new Exception("Packet header is invalid."); - } - - Reset(packetHeader.PacketLength, packetHeader); + Reset(packetHeaderLength); } public void Dispose() @@ -75,7 +55,7 @@ namespace TEngine.Runtime m_Disposed = true; } - private void Reset(int targetLength, IPacketHeader packetHeader) + private void Reset(int targetLength) { if (targetLength < 0) { @@ -84,7 +64,6 @@ namespace TEngine.Runtime m_Stream.Position = 0L; m_Stream.SetLength(targetLength); - m_PacketHeader = packetHeader; } } } diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs deleted file mode 100644 index 2e92199e..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using ProtoBuf; - -namespace TEngine.Runtime -{ - [Serializable, ProtoContract(Name = @"CSPacketHeader")] - public sealed class CSPacketHeader : PacketHeaderBase - { - - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs.meta deleted file mode 100644 index 00eff30f..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/CSPacketHeader.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 383e04755715b054f9e57b1ab1d322af -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs index 73d4b399..ef616a8b 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/NetworkChannelHelper.cs @@ -68,9 +68,6 @@ namespace TEngine.Runtime { m_CachedStream.SetLength(m_CachedStream.Capacity); // 此行防止 Array.Copy 的数据无法写入 m_CachedStream.Position = 0L; - CSPacketHeader packetHeader = MemoryPool.Acquire(); - Serializer.Serialize(m_CachedStream, packetHeader); - MemoryPool.Release(packetHeader); Serializer.SerializeWithLengthPrefix(m_CachedStream, packet, PrefixStyle.Fixed32); MemoryPool.Release((IMemory)packet); m_CachedStream.WriteTo(destination); @@ -84,47 +81,24 @@ namespace TEngine.Runtime /// 要反序列化的来源流。 /// 用户自定义错误数据。 /// 反序列化后的消息包。 - public MainPack DeserializePacket(IPacketHeader packetHeader, Stream source, out object customErrorData) + public MainPack DeserializePacket(Stream source, out object customErrorData) { // 注意:此函数并不在主线程调用! customErrorData = null; - CSPacketHeader csPacketHeader = packetHeader as CSPacketHeader; - if (csPacketHeader == null) - { - Log.Warning("Packet header is invalid."); - return null; - } - MainPack packet = null; - if (csPacketHeader.IsValid) + Type packetType = typeof(MainPack); + if (packetType != null) { - Type packetType = typeof(MainPack); - if (packetType != null) - { - packet = (MainPack)RuntimeTypeModel.Default.DeserializeWithLengthPrefix(source, MemoryPool.Acquire(packetType), packetType, PrefixStyle.Fixed32, 0); - } - else - { - Log.Warning("Can not deserialize packet for packet id '{0}'.", csPacketHeader.Id.ToString()); - } + packet = (MainPack)RuntimeTypeModel.Default.DeserializeWithLengthPrefix(source, MemoryPool.Acquire(packetType), packetType, PrefixStyle.Fixed32, 0); } else { - Log.Warning("Packet header is invalid."); + Log.Warning("Can not deserialize packet for packet id '{0}'.", packet.actioncode.ToString()); } - - MemoryPool.Release(csPacketHeader); return packet; } - public IPacketHeader DeserializePacketHeader(Stream source, out object customErrorData) - { - // 注意:此函数并不在主线程调用! - customErrorData = null; - return (IPacketHeader)RuntimeTypeModel.Default.Deserialize(source, MemoryPool.Acquire(), typeof(CSPacketHeader)); - } - /// /// 关闭并清理网络频道辅助器。 /// diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs deleted file mode 100644 index e99d169c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs +++ /dev/null @@ -1,31 +0,0 @@ -namespace TEngine.Runtime -{ - public abstract class PacketHeaderBase : IPacketHeader, IMemory - { - public int Id - { - get; - set; - } - - public int PacketLength - { - get; - set; - } - - public bool IsValid - { - get - { - return Id > 0 && PacketLength >= 0; - } - } - - public void Clear() - { - Id = 0; - PacketLength = 0; - } - } -} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs.meta deleted file mode 100644 index d280b59c..00000000 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Helper/PacketHeaderBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 279045bf4ec72144aa03880102a04057 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs index 20ca88f0..29e920ad 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpNetworkChannel.cs @@ -260,15 +260,8 @@ namespace TEngine.Runtime m_ReceiveState.Stream.Position = 0L; bool processSuccess = false; - if (m_ReceiveState.PacketHeader != null) - { - processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - } - else - { - processSuccess = ProcessPacketHeader(); - } + processSuccess = ProcessPacket(); + m_ReceivedPacketCount++; if (processSuccess) { diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs index 86550d5e..ec232e89 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Tcp/NetworkManager.TcpWithSyncReceiveNetworkChannel.cs @@ -227,15 +227,8 @@ namespace TEngine.Runtime m_ReceiveState.Stream.Position = 0L; bool processSuccess = false; - if (m_ReceiveState.PacketHeader != null) - { - processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - } - else - { - processSuccess = ProcessPacketHeader(); - } + processSuccess = ProcessPacket(); + m_ReceivedPacketCount++; return processSuccess; } diff --git a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs index f33fb428..708ece38 100644 --- a/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs +++ b/Assets/TEngine/Scripts/Runtime/Core/NetWork/Udp/UdpNetworkChannel.cs @@ -253,15 +253,8 @@ namespace TEngine.Runtime m_ReceiveState.Stream.Position = 0L; bool processSuccess = false; - if (m_ReceiveState.PacketHeader != null) - { - processSuccess = ProcessPacket(); - m_ReceivedPacketCount++; - } - else - { - processSuccess = ProcessPacketHeader(); - } + processSuccess = ProcessPacket(); + m_ReceivedPacketCount++; if (processSuccess) {