From 6649efc2327b4f862ae1971e6886a9208e660624 Mon Sep 17 00:00:00 2001 From: Anna Date: Sat, 30 Jul 2022 00:37:06 -0400 Subject: [PATCH] feat: bump max receive size to 1 MiB --- client/ExtraChat/Ext.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/client/ExtraChat/Ext.cs b/client/ExtraChat/Ext.cs index 983c6f3..f973c87 100644 --- a/client/ExtraChat/Ext.cs +++ b/client/ExtraChat/Ext.cs @@ -16,19 +16,20 @@ public static class Ext { } public static async Task ReceiveMessage(this ClientWebSocket client) { - var bytes = new ArraySegment(new byte[2048]); + var bytes = new List(2048); + var buffer = new ArraySegment(new byte[2048]); WebSocketReceiveResult result; - var i = 0; do { - result = await client.ReceiveAsync(bytes[i..], CancellationToken.None); - i += result.Count; + result = await client.ReceiveAsync(buffer, CancellationToken.None); + bytes.AddRange(buffer[..result.Count]); - if (i >= bytes.Count) { + // 1 MiB + if (bytes.Count > 1_048_576) { throw new Exception(); } } while (!result.EndOfMessage); - return MessagePackSerializer.Deserialize(bytes[..i]); + return MessagePackSerializer.Deserialize(bytes.ToArray()); } }