Websocket failing with large payload (greater than 65535 bytes)

I’m using a .NET Core 3.1 service to update various clients with real-time data. A new problem has come up that I narrowed down to the payload size as I am now trying to include base64 encoded image strings (casuing the increase in data message size).

In my research, Websocket spec supports payloads of up to 2^63 bytes - it just uses a different length value (127) in the header frame signifying that the length is a 4-byte value. However, it does not seem that the .NET Core 3.1 implementation of the protocol is correct. It does not appear that the SendAsync() function ever completes (although the data DOES get transmitted and received). All subsequent attempts to send data on the socket fail (since only one can be active at a time). Has anyone else encountered this? Thanks!

.NET Foundation Website | Blog | Projects | Code of Conduct