Skip to content

Commit a4c2a8f

Browse files
committed
[增加]1. 增加消息压缩界限值超过100的时候才启用压缩的设置
1 parent 4b754d3 commit a4c2a8f

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

Runtime/Network/Helper/DefaultPacketSendHeaderHandler.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace GameFrameX.Network.Runtime
55
{
6-
public sealed class DefaultPacketSendHeaderHandler : IPacketSendHeaderHandler, IPacketHandler
6+
public class DefaultPacketSendHeaderHandler : IPacketSendHeaderHandler, IPacketHandler
77
{
88
/// <summary>
99
/// 网络包长度
@@ -53,13 +53,17 @@ public DefaultPacketSendHeaderHandler()
5353
/// </summary>
5454
public ushort PacketLength { get; private set; }
5555

56-
5756
/// <summary>
5857
/// 是否压缩消息内容
5958
/// </summary>
6059
public bool IsZip { get; private set; }
6160

62-
private int m_Offset = 0;
61+
/// <summary>
62+
/// 超过消息的长度超过该值的时候启用压缩.该值 必须在设置压缩器的时候才生效,默认100
63+
/// </summary>
64+
public virtual uint LimitCompressLength { get; } = 100;
65+
66+
private int m_Offset;
6367
private readonly byte[] m_CachedByte;
6468

6569
/// <summary>
@@ -76,12 +80,16 @@ public bool Handler<T>(T messageObject, IMessageCompressHandler messageCompressH
7680
m_Offset = 0;
7781
var messageType = messageObject.GetType();
7882
Id = ProtoMessageIdHandler.GetReqMessageIdByType(messageType);
79-
IsZip = messageCompressHandler != null;
8083
messageBodyBuffer = SerializerHelper.Serialize(messageObject);
81-
if (IsZip)
84+
if (messageCompressHandler != null && messageBodyBuffer.Length > LimitCompressLength)
8285
{
86+
IsZip = true;
8387
messageBodyBuffer = messageCompressHandler.Handler(messageBodyBuffer);
8488
}
89+
else
90+
{
91+
IsZip = false;
92+
}
8593

8694
var messageLength = messageBodyBuffer.Length;
8795
PacketLength = (ushort)(PacketHeaderLength + messageLength);

Runtime/Network/Interface/IPacketSendHeaderHandler.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ public interface IPacketSendHeaderHandler
2727
/// </summary>
2828
bool IsZip { get; }
2929

30+
/// <summary>
31+
/// 超过消息的长度超过该值的时候启用压缩.该值 必须在设置压缩器的时候才生效
32+
/// </summary>
33+
uint LimitCompressLength { get; }
34+
3035
/// <summary>
3136
/// 处理消息
3237
/// </summary>

0 commit comments

Comments
 (0)