Отладка двоичных веб-сокетов - PullRequest
       16

Отладка двоичных веб-сокетов

0 голосов
/ 02 сентября 2018

Я пытаюсь отладить веб-приложение, используя веб-сокеты для передачи двоичных данных. Chrome DevTools имеет эту удобную вкладку сети, которая может отображать фреймы веб-сокетов ... за исключением бинарных фреймов, он просто говорит Binary Frame (Opcode 2), и все. Я понятия не имею, почему они остановились на этом, когда так легко предоставить больше информации. Я даже нашел запрос на эту функцию от 2 лет назад.

Во всяком случае, я ищу альтернативы. Я также хотел бы добавить несколько пользовательских логики для двоичных данных.

На данный момент лучшее решение, которое я нашел - открепить окно devtools, открыть другое devtools для devtools (нажмите Ctrl + Shift + I на вкладке Elements), перейти к исходному файлу для вкладки network, поместить точку останова на строку, которая устанавливает текстовое содержимое фрейма и добавляет код JS для изменения локальных переменных в меню редактирования точек останова. Я получаю что-то вроде этого, которое в значительной степени идеально, но его довольно сложно настроить, и его трудно использовать с более сложным кодом синтаксического анализа.

enter image description here

В идеале что-то подобное может быть сделано расширением chrome, но кажется, что расширения devtools могут заходить только до тех пор, пока перехватывают регулярные сетевые запросы.

Другой альтернативой является использование Wireshark, но для этого требуется журнал ключей SSL, а затем нет четкой документации о том, как заставить собственный анализатор анализировать выходные данные SSL-декодера вместо необработанных данных TCP (есть вопрос об этом здесь без ответа). Кроме того, у меня есть большой объем JS-кода для анализа двоичных данных, и перевод всего на LUA был бы довольно трудным.

Обновление: Мне удалось создать расширение для этого, используя API отладчика . Это требует создания собственного пользовательского интерфейса со списком фреймов, но в итоге он работает так, как я хотел.

...