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); } }