134 lines
5.4 KiB
Markdown
134 lines
5.4 KiB
Markdown
# 🛠️ Исправления WebRTC проблем - Руководство по тестированию
|
||
|
||
## ✅ Что было исправлено
|
||
|
||
### 1. **Событие регистрации мобильного клиента**
|
||
- ❌ **Было**: `register:android` (неправильно)
|
||
- ✅ **Стало**: `register:mobile_web` (правильно)
|
||
|
||
### 2. **Добавлена полная поддержка WebRTC**
|
||
- ➕ Добавлен класс `RTCPeerConnection`
|
||
- ➕ Обработчики WebRTC событий: `webrtc:offer`, `webrtc:answer`, `webrtc:ice-candidate`
|
||
- ➕ Правильная обработка ICE candidates
|
||
- ➕ Обработка состояний соединения
|
||
|
||
### 3. **Улучшена диагностика ошибок**
|
||
- ➕ Подробные логи WebRTC процесса
|
||
- ➕ Отслеживание состояний соединения
|
||
- ➕ Более информативные сообщения об ошибках
|
||
|
||
## 🧪 Как протестировать исправления
|
||
|
||
### Шаг 1: Перезапустить сервер (✅ Выполнено)
|
||
```bash
|
||
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
|
||
|
||
## 🔧 Команды для отладки
|
||
|
||
### Проверить статус сервера:
|
||
```bash
|
||
curl http://localhost:3001/api/status
|
||
```
|
||
|
||
### Проверить подключенные устройства:
|
||
```bash
|
||
curl http://localhost:3001/api/devices
|
||
```
|
||
|
||
### Просмотр логов сервера в реальном времени:
|
||
```bash
|
||
tail -f /home/data/god_eye/backend/god-eye.log
|
||
```
|
||
|
||
## 📱 Узнать IP для доступа с телефона
|
||
|
||
### Linux:
|
||
```bash
|
||
hostname -I | awk '{print $1}'
|
||
```
|
||
|
||
### Или:
|
||
```bash
|
||
ip addr show | grep "inet.*192\|inet.*10\." | head -1
|
||
```
|
||
|
||
## ✨ Ожидаемый результат
|
||
|
||
После всех исправлений должно работать:
|
||
1. ✅ Мобильный браузер подключается как `mobile_web` устройство
|
||
2. ✅ Desktop Operator видит мобильное устройство в списке
|
||
3. ✅ WebRTC соединение устанавливается успешно
|
||
4. ✅ Видео с телефона транслируется в Desktop Operator
|
||
5. ✅ Переключение камер работает корректно
|
||
|
||
---
|
||
|
||
**🎯 Основная цель**: Добиться стабильной работы видеопотока между мобильным браузером и desktop оператором через WebRTC. |