Chrome DevTools недавно получил возможность предварительного просмотра фреймов двоичных веб-сокетов:
Просмотрщик двоичных сообщений WebSocket
Я решил протестировать его, поэтому создал простую сетьсокет-эхо-тестер и пинг-веб-сокет-клиент, и, к моему удивлению, мои входящие двоичные кадры отлично работают и просматриваются инструментами разработчика, но исходящие сообщают о неправильной длине нулевого байта и не показывают данных.Я знаю, что фрейм правильный, потому что сервер просто возвращает его обратно, поэтому, если он будет разбит, он будет отображать неверный кадр обратно.
Мой тестовый код клиента выглядит следующим образом:
const blob = new Blob(['BINARY']);
webSocket.send(blob);
И сервер просто отправляет запрос:
await socket.SendAsync(new ArraySegment<byte>(buffer, 0, result.Count), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);
Вы можете увидеть полную реализацию сервера и клиента в моем репозитории GitHub .
Исходящий фрейм:
Входящий кадр:
Что может быть причиной того, что Chrome отображает исходящиекадр неправильно?Возможно, я неправильно строю блоб?