fix(core): Converts account packets to spanwriter (#381)
- [X] Converts account packets to spanwriter
This commit is contained in:
parent
3b413371dc
commit
ac76c57c39
7 changed files with 157 additions and 117 deletions
|
|
@ -32,7 +32,8 @@ namespace Server.Network
|
|||
{
|
||||
public delegate void NetStateCreatedCallback(NetState ns);
|
||||
|
||||
public delegate void EncodePacket(ref CircularBuffer<byte> buffer, ref int length);
|
||||
public delegate void DecodePacket(ref CircularBuffer<byte> buffer, ref int length);
|
||||
public delegate void EncodePacket(ReadOnlySpan<byte> inputBuffer, ref CircularBuffer<byte> outputBuffer, out int length);
|
||||
|
||||
public partial class NetState : IComparable<NetState>, IDisposable
|
||||
{
|
||||
|
|
@ -54,7 +55,7 @@ namespace Server.Network
|
|||
private byte[] _sendBuffer;
|
||||
private long m_NextCheckActivity;
|
||||
private volatile bool m_Running;
|
||||
private volatile EncodePacket _packetDecoder;
|
||||
private volatile DecodePacket _packetDecoder;
|
||||
private volatile EncodePacket _packetEncoder;
|
||||
|
||||
internal int m_AuthID;
|
||||
|
|
@ -115,7 +116,7 @@ namespace Server.Network
|
|||
|
||||
public IPAddress Address { get; }
|
||||
|
||||
public EncodePacket PacketDecoder
|
||||
public DecodePacket PacketDecoder
|
||||
{
|
||||
get => _packetDecoder;
|
||||
set => _packetDecoder = value;
|
||||
|
|
@ -392,8 +393,15 @@ namespace Server.Network
|
|||
|
||||
try
|
||||
{
|
||||
buffer.CopyFrom(span);
|
||||
_packetEncoder?.Invoke(ref buffer, ref length);
|
||||
if (_packetEncoder != null)
|
||||
{
|
||||
_packetEncoder(span, ref buffer, out length);
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer.CopyFrom(span);
|
||||
}
|
||||
|
||||
SendPipe.Writer.Advance((uint)length);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -418,7 +426,12 @@ namespace Server.Network
|
|||
|
||||
try
|
||||
{
|
||||
_packetEncoder?.Invoke(ref buffer, ref length);
|
||||
// _packetEncoder?.Invoke(ref buffer, ref length);
|
||||
if (CompressionEnabled)
|
||||
{
|
||||
NetworkCompression.Compress(ref buffer, ref length); // This will be changed soon
|
||||
}
|
||||
|
||||
SendPipe.Writer.Advance((uint)length);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue