Files
god_eye/docs/WEBRTC_FIXES_GUIDE.md
2025-10-04 11:55:55 +09:00

5.4 KiB
Raw Blame History

🛠️ Исправления WebRTC проблем - Руководство по тестированию

Что было исправлено

1. Событие регистрации мобильного клиента

  • Было: register:android (неправильно)
  • Стало: register:mobile_web (правильно)

2. Добавлена полная поддержка WebRTC

  • Добавлен класс RTCPeerConnection
  • Обработчики WebRTC событий: webrtc:offer, webrtc:answer, webrtc:ice-candidate
  • Правильная обработка ICE candidates
  • Обработка состояний соединения

3. Улучшена диагностика ошибок

  • Подробные логи WebRTC процесса
  • Отслеживание состояний соединения
  • Более информативные сообщения об ошибках

🧪 Как протестировать исправления

Шаг 1: Перезапустить сервер ( Выполнено)

cd /home/data/god_eye/backend
node src/server.js
# Сервер работает на http://localhost:3001

Шаг 2: Тестирование с мобильного телефона

  1. Откройте браузер на телефоне
  2. Перейдите: http://[IP_СЕРВЕРА]:3001/mobile
  3. Проверьте регистрацию: В логах должно появиться "Mobile web client registered"
  4. Включите камеру: Нажмите кнопку 📷
  5. Проверьте превью: Видео должно отображаться

Шаг 3: Тестирование с Desktop Operator

  1. Запустите Desktop Operator приложение
  2. Подключитесь к серверу: ws://localhost:3001
  3. Найдите мобильное устройство в списке устройств
  4. Отправьте запрос на доступ к камере

Шаг 4: Полный цикл WebRTC

  1. На телефоне: Принмите запрос ( Принять)
  2. Проверьте логи в браузере телефона (F12 -> Console)
  3. В Desktop Operator: Должно появиться видео с телефона

📊 Что проверить в логах

Логи сервера (терминал):

📱 Mobile web client connected: [ID]
🌐 Mobile web event: register:mobile_web
Mobile web client registered: [device-id]

Логи мобильного браузера (F12 -> Console):

📱 Устройство зарегистрировано
📞 Получен WebRTC offer
📝 Remote description установлен  
✅ WebRTC answer отправлен
🧊 ICE candidate добавлен
🔗 WebRTC состояние: connected

Логи Desktop Operator:

Session created: [session-id]
WebRTC offer sent
WebRTC answer received
ICE candidate received
Video stream connected

🚨 Возможные проблемы и решения

Проблема: "Ошибка камеры: undefined"

Решение:

  • Проверьте разрешения камеры в браузере
  • Попробуйте обновить страницу
  • Убедитесь что камера не занята другими приложениями

Проблема: WebRTC соединение не устанавливается

Решение:

  • Проверьте что оба устройства в одной сети
  • Посмотрите логи на предмет ошибок ICE
  • Попробуйте другой браузер

Проблема: Видео не отображается в операторе

Решение:

  • Проверьте что мобильный клиент правильно отправляет видео поток
  • Убедитесь что Desktop Operator правильно обрабатывает WebRTC

🔧 Команды для отладки

Проверить статус сервера:

curl http://localhost:3001/api/status

Проверить подключенные устройства:

curl http://localhost:3001/api/devices

Просмотр логов сервера в реальном времени:

tail -f /home/data/god_eye/backend/god-eye.log

📱 Узнать IP для доступа с телефона

Linux:

hostname -I | awk '{print $1}'

Или:

ip addr show | grep "inet.*192\|inet.*10\." | head -1

Ожидаемый результат

После всех исправлений должно работать:

  1. Мобильный браузер подключается как mobile_web устройство
  2. Desktop Operator видит мобильное устройство в списке
  3. WebRTC соединение устанавливается успешно
  4. Видео с телефона транслируется в Desktop Operator
  5. Переключение камер работает корректно

🎯 Основная цель: Добиться стабильной работы видеопотока между мобильным браузером и desktop оператором через WebRTC.