5.4 KiB
5.4 KiB
🛠️ Исправления 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: Тестирование с мобильного телефона
- Откройте браузер на телефоне
- Перейдите:
http://[IP_СЕРВЕРА]:3001/mobile - Проверьте регистрацию: В логах должно появиться "Mobile web client registered"
- Включите камеру: Нажмите кнопку 📷
- Проверьте превью: Видео должно отображаться
Шаг 3: Тестирование с Desktop Operator
- Запустите Desktop Operator приложение
- Подключитесь к серверу:
ws://localhost:3001 - Найдите мобильное устройство в списке устройств
- Отправьте запрос на доступ к камере
Шаг 4: Полный цикл WebRTC
- На телефоне: Принмите запрос (✅ Принять)
- Проверьте логи в браузере телефона (F12 -> Console)
- В 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
✨ Ожидаемый результат
После всех исправлений должно работать:
- ✅ Мобильный браузер подключается как
mobile_webустройство - ✅ Desktop Operator видит мобильное устройство в списке
- ✅ WebRTC соединение устанавливается успешно
- ✅ Видео с телефона транслируется в Desktop Operator
- ✅ Переключение камер работает корректно
🎯 Основная цель: Добиться стабильной работы видеопотока между мобильным браузером и desktop оператором через WebRTC.