Повреждение полезной нагрузки веб-сокета .Net Framework

#.net #websocket

#.net #websocket

Вопрос:

Я использую System.Net.WebSocket с .net framework 4.7.1 и 4.8.

При нормальной работе все работает отлично, но при отправке большого количества сообщений (более 100 сообщений в секунду) соединение websocket начинает отправлять поврежденные полезные данные. Размер сообщений варьируется от 4 КБ до более 100 КБ.

Вот скриншот из Fiddler:

введите описание изображения здесь

Из сообщения 38765 все идет не так. Это сообщение в порядке до символа 49139, а после этого искажено. Следующие сообщения, отправляемые соединением, также искажены и имеют другой тип фрейма.

Кто-нибудь сталкивался с подобной проблемой? Что может быть причиной этого?

Комментарии:

1. Нет .NET Framework 7.1. Возможно, вы имеете в виду 4.7.1?

2. Да! Да. Я обновлю вопрос

3. Я думаю, что мы сталкиваемся с аналогичной проблемой. Я отражаю сообщения через сервер NodeJS и надежно обнаруживаю повреждение после 10 тысяч или около того сообщений при отправке сообщений случайного размера в диапазоне от 0 до 100 тысяч. Частота повреждения, по-видимому, коррелирует с размерами буфера (ClientWebSocket::Options::SetBuffer).

4. @sebf. Я обнаружил, что увеличение размера буфера до максимального 64 КБ решает проблему.