90 lines
3.7 KiB
Markdown
90 lines
3.7 KiB
Markdown
# DEBUG: тестирование сетевого соединения между двумя клиентами
|
||
|
||
Документ описывает временный debug-контур для проверки WebRTC соединения между двумя активными WS-сессиями.
|
||
|
||
## 1) Подготовка
|
||
|
||
1. Создай файл `.debug-token` в корне проекта на основе `debug-token.example`.
|
||
2. В `.debug-token` должна быть одна строка: секретный токен.
|
||
3. Перезапусти сервер.
|
||
|
||
## 2) API debug
|
||
|
||
Базовый заголовок для всех запросов:
|
||
|
||
```bash
|
||
-H "Authorization: Bearer <YOUR_DEBUG_TOKEN>"
|
||
```
|
||
|
||
### 2.1 Получить список живых клиентов
|
||
|
||
```bash
|
||
curl -s \
|
||
-H "Authorization: Bearer <YOUR_DEBUG_TOKEN>" \
|
||
http://localhost:7070/debug/ws/clients | jq
|
||
```
|
||
|
||
Ответ содержит `sessionId`, `login`, `ip`, `userAgent`, и клиентскую информацию.
|
||
|
||
### 2.2 Запустить debug-соединение между двумя сессиями
|
||
|
||
```bash
|
||
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-логов
|
||
|
||
```bash
|
||
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 имеет любой, кто знает токен.
|
||
- Рекомендуется тестить между разными логинами.
|