#.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 КБ решает проблему.