diff --git a/Net.Sdk.Web.Extensions/Net.Sdk.Web.Extensions.csproj b/Net.Sdk.Web.Extensions/Net.Sdk.Web.Extensions.csproj
index d0b396d..2f0d001 100644
--- a/Net.Sdk.Web.Extensions/Net.Sdk.Web.Extensions.csproj
+++ b/Net.Sdk.Web.Extensions/Net.Sdk.Web.Extensions.csproj
@@ -6,7 +6,7 @@
enable
Library
true
- 0.8.11
+ 0.8.13
Alexandru Macocian
LICENSE
true
diff --git a/Net.Sdk.Web.Extensions/WebApplicationExtensions.cs b/Net.Sdk.Web.Extensions/WebApplicationExtensions.cs
index 0c84e6c..b65ee8a 100644
--- a/Net.Sdk.Web.Extensions/WebApplicationExtensions.cs
+++ b/Net.Sdk.Web.Extensions/WebApplicationExtensions.cs
@@ -151,6 +151,7 @@ public static class WebApplicationExtensions
while(webSocket.State == WebSocketState.Open && !cancellationToken.IsCancellationRequested)
{
ms.Position = 0;
+ var totalRead = 0;
do
{
var byteArray = ArrayPool.Shared.Rent(4 * 1024);
@@ -158,6 +159,7 @@ public static class WebApplicationExtensions
try
{
result = await webSocket.ReceiveAsync(buffer, cancellationToken);
+ totalRead += result.Count;
ms.Write(buffer[..result.Count].Span);
}
finally
@@ -171,7 +173,7 @@ public static class WebApplicationExtensions
return;
}
- await route.ExecuteAsync(result.MessageType, ms.GetReadOnlySequence(), cancellationToken);
+ await route.ExecuteAsync(result.MessageType, ms.GetReadOnlySequence().Slice(0, totalRead), cancellationToken);
}
}