SHiNE-server/DEBUG_CONNECTION_TESTING.md

3.8 KiB
Raw Permalink Blame History

DEBUG: тестирование сетевого соединения между двумя клиентами

Документ описывает временный debug-контур для проверки WebRTC соединения между двумя активными WS-сессиями.

1) Подготовка

  1. Убедись, что в application.properties включен параметр: debug.tempApi.enabled=true
  2. Создай файл .debug-token в корне проекта на основе debug-token.example.
  3. В .debug-token должна быть одна строка: секретный токен.
  4. Перезапусти сервер.

2) API debug

Базовый заголовок для всех запросов:

-H "Authorization: Bearer <YOUR_DEBUG_TOKEN>"

2.1 Получить список живых клиентов

curl -s \
  -H "Authorization: Bearer <YOUR_DEBUG_TOKEN>" \
  http://localhost:7070/debug/ws/clients | jq

Ответ содержит sessionId, login, ip, userAgent, и клиентскую информацию.

2.2 Запустить debug-соединение между двумя сессиями

curl -s -X POST \
  -H "Authorization: Bearer <YOUR_DEBUG_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "initiatorSessionId": "SESSION_ID_A",
    "responderSessionId": "SESSION_ID_B",
    "clearDebugLog": false
  }' \
  http://localhost:7070/debug/ws/connect | jq

В ответе придёт runId. Его используй для фильтра логов.

2.3 Читать последние N debug-логов

curl -s \
  -H "Authorization: Bearer <YOUR_DEBUG_TOKEN>" \
  "http://localhost:7070/debug/ws/logs?limit=200&runId=<RUN_ID>" | jq

3) Операционный сценарий “Codex + пользователь”

  1. Codex поднимает сервер и сообщает пользователю ссылку на UI.
  2. Codex пишет пользователю: «Запусти двух клиентов и скажи “продолжай”».
  3. Пользователь запускает два клиента (лучше под разными логинами).
  4. Пользователь пишет: «продолжай».
  5. Codex:
    • вызывает /debug/ws/clients,
    • выбирает 2 сессии,
    • вызывает /debug/ws/connect,
    • получает runId,
    • читает /debug/ws/logs?runId=... и сообщает прогресс.
  6. Если соединение не удалось:
    • Codex сообщает ошибки по логам,
    • при необходимости просит перезапустить 2 клиента,
    • повторяет запуск debug-run.

4) Какие сообщения считать успехом

  • peer_connection_connected
  • debug_connection_success
  • signal_sent_200/210/220 без ошибок

5) Что говорить пользователю в ходе прогона (через «колонку»/чат)

Рекомендуемые фразы:

  • «Сервер запущен. Запусти двух клиентов и напиши “продолжай”.»
  • «Вижу 2 активные сессии, запускаю тест соединения.»
  • «Тест запущен, runId=... Сейчас проверяю логи.»
  • «Соединение установлено / не установлено. Ниже причины и следующий шаг.»

6) Ограничения

  • Механизм временный, не для production-эксплуатации.
  • Доступ к debug API имеет любой, кто знает токен.
  • Рекомендуется тестить между разными логинами.