From f2fcb3a2c22a4e2f1c14043c2bf29f4487289fac Mon Sep 17 00:00:00 2001 From: cds <707260139@qq.com> Date: Wed, 5 Jul 2023 14:28:17 +0800 Subject: [PATCH] =?UTF-8?q?HandshakeValidator=E6=A3=80=E9=AA=8C=E4=B8=8D?= =?UTF-8?q?=E9=80=9A=E8=BF=87=EF=BC=8C=E6=8F=A1=E6=89=8B=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=EF=BC=8CTcpPipeChannel.PipelineFilter.Context?= =?UTF-8?q?=EF=BC=8CWebSocketSession=E4=BA=A4=E5=8F=89=E5=BC=95=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E8=87=B4gc=E6=97=A0=E6=B3=95=E5=9B=9E?= =?UTF-8?q?=E6=94=B6=EF=BC=8C=E5=86=85=E5=AD=98=E6=BA=A2=E5=87=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SuperSocket.Channel/TcpPipeChannel.cs | 5 +++++ src/SuperSocket.ProtoBase/PackagePartsPipelineFilter.cs | 2 ++ src/SuperSocket.WebSocket/WebSocketPipelineFilter.cs | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/SuperSocket.Channel/TcpPipeChannel.cs b/src/SuperSocket.Channel/TcpPipeChannel.cs index 6b1a08924..0964c5c4d 100644 --- a/src/SuperSocket.Channel/TcpPipeChannel.cs +++ b/src/SuperSocket.Channel/TcpPipeChannel.cs @@ -76,6 +76,11 @@ protected override async ValueTask SendOverIOAsync(ReadOnlySequence b protected override void Close() { + if (this is IPipeChannel channel) + { + channel.PipelineFilter?.Reset(); + } + var socket = _socket; if (socket == null) diff --git a/src/SuperSocket.ProtoBase/PackagePartsPipelineFilter.cs b/src/SuperSocket.ProtoBase/PackagePartsPipelineFilter.cs index a77e38f97..1051fc71a 100644 --- a/src/SuperSocket.ProtoBase/PackagePartsPipelineFilter.cs +++ b/src/SuperSocket.ProtoBase/PackagePartsPipelineFilter.cs @@ -53,6 +53,8 @@ public virtual void Reset() { CurrentPackage = null; _currentPartReader = null; + Context = null; + NextFilter = null; } public object Context { get; set; } diff --git a/src/SuperSocket.WebSocket/WebSocketPipelineFilter.cs b/src/SuperSocket.WebSocket/WebSocketPipelineFilter.cs index c9b5da024..24ecbdf38 100644 --- a/src/SuperSocket.WebSocket/WebSocketPipelineFilter.cs +++ b/src/SuperSocket.WebSocket/WebSocketPipelineFilter.cs @@ -138,7 +138,9 @@ private HttpHeader ParseHttpHeaderItems(ref ReadOnlySequence header) public void Reset() { - + NextFilter = null; + Context = null; + GC.Collect(); } public object Context { get; set; }