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)
{