Skip to content

Commit e4d04f7

Browse files
committed
refactor: 精简代码提高可读性
1 parent efdd447 commit e4d04f7

File tree

1 file changed

+8
-17
lines changed

1 file changed

+8
-17
lines changed

src/BootstrapBlazor/Services/TcpSocket/DataPackage/DataPackageHandlerBase.cs

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
// See the LICENSE file in the project root for more information.
44
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone
55

6-
using System.Buffers;
7-
86
namespace BootstrapBlazor.Components;
97

108
/// <summary>
@@ -56,12 +54,9 @@ public virtual Task ReceiveAsync(Memory<byte> data)
5654
/// <param name="length">The length of the valid data within the buffer.</param>
5755
protected void HandlerStickyPackage(Memory<byte> buffer, int length)
5856
{
59-
var len = buffer.Length - length;
60-
if (len > 0)
57+
if (buffer.Length > length)
6158
{
62-
var memoryBlock = MemoryPool<byte>.Shared.Rent(len);
63-
buffer[length..].CopyTo(memoryBlock.Memory);
64-
_lastReceiveBuffer = memoryBlock.Memory[..len];
59+
_lastReceiveBuffer = buffer[length..].ToArray().AsMemory();
6560
}
6661
}
6762

@@ -82,17 +77,13 @@ protected Memory<byte> ConcatBuffer(Memory<byte> buffer)
8277
}
8378

8479
// 计算缓存区长度
85-
var len = _lastReceiveBuffer.Length + buffer.Length;
86-
87-
// 申请缓存
88-
var memoryBlock = MemoryPool<byte>.Shared.Rent(len);
89-
90-
// 拷贝数据到缓存区
91-
_lastReceiveBuffer.CopyTo(memoryBlock.Memory);
92-
buffer.CopyTo(memoryBlock.Memory[_lastReceiveBuffer.Length..]);
80+
var total = _lastReceiveBuffer.Length + buffer.Length;
81+
var merged = new byte[total];
82+
_lastReceiveBuffer.CopyTo(merged);
83+
buffer.CopyTo(merged.AsMemory(_lastReceiveBuffer.Length));
9384

94-
// 清空粘包缓存数据
85+
// Clear the sticky buffer
9586
_lastReceiveBuffer = Memory<byte>.Empty;
96-
return memoryBlock.Memory[..len];
87+
return merged;
9788
}
9889
}

0 commit comments

Comments
 (0)