1. Можно ли использовать Bruno или JetBrains HTTP Client?

Краткий ответ: Это будет очень неудобно.

Подробный ответ: Обе эти программы отлично справляются с REST, GraphQL и даже “чистыми” WebSockets (в JetBrains HTTP Client вы можете написать WEBSOCKET wss://...). Но проблема заключается в самом протоколе STOMP.

STOMP — это текстовый протокол, который требует строгого форматирования. Самое главное — каждый STOMP-фрейм должен заканчиваться нулевым байтом (null byte, \x00 или \0). В обычных HTTP-клиентах, даже если они поддерживают WebSockets, отправить этот невидимый нулевой байт в конце каждого сообщения вручную крайне сложно или невозможно. Из-за этого сервер просто не поймет, где закончилось ваше сообщение, и соединение зависнет.

Что использовать вместо них:

  • Если хочется интерфейс: Postman (в новых версиях есть поддержка WebSockets, и там проще передавать бинарные символы/сырые сообщения) или специализированные веб-инструменты вроде APIC.
  • Идеальный вариант для реверс-инжиниринга STOMP — короткий скрипт на Python (как я показывал ранее). Он возьмет на себя всю черновую работу по добавлению нужных байтов и форматированию.

2. Как перехватить всю сессию (создать дамп для анализа)?

Для этого есть два отличных способа: простой (встроенный в браузер) и профессиональный.

Способ А: Встроенный в Chrome (Экспорт HAR-файла)

Это самый быстрый способ сохранить всю игру от начала до конца, чтобы потом спокойно изучить все сообщения в текстовом редакторе.

  1. Откройте Developer Tools вкладка Network.
  2. Отфильтруйте по WS (WebSockets).
  3. Начните и сыграйте полную партию от начала до конца.
  4. Кликните правой кнопкой мыши в любом месте списка запросов и выберите Save all as HAR with content.
  5. Сохранится .har файл (по сути, это огромный JSON).
  6. Откройте этот файл в любом редакторе кода (VS Code, JetBrains). Найдите там ваш WebSocket-запрос, и в его объекте будут массивы messages — вы увидите полную хронологию всех отправленных и полученных STOMP-фреймов.

Способ Б: Профессиональный прокси (Proxyman / Charles Proxy)

Так как вы используете Mac, я настоятельно рекомендую попробовать Proxyman (у него есть бесплатная версия, которой хватит с головой). Это приложение, которое ставится между вашим браузером и интернетом.

  1. Установите Proxyman.
  2. Он попросит установить свой сертификат в систему (чтобы уметь читать HTTPS-трафик) — соглашайтесь.
  3. Откройте dicechess.com в браузере и играйте.
  4. В Proxyman вы увидите ваш WebSocket-запрос к серверу. Если вы нажмете на него, в нижней панели откроется вкладка, которая будет в реальном времени красиво показывать все входящие и исходящие STOMP-сообщения.
  5. Там же можно делать фильтрацию, искать по тексту, копировать конкретные JSON-объекты и даже повторять отправку некоторых сообщений.

Для реверс-инжиниринга веб-сокетов Proxyman (или его аналог Charles) — это инструмент номер один. Он сразу покажет всю структуру общения игры.