main commit
This commit is contained in:
134
docs/WEBRTC_FIXES_GUIDE.md
Normal file
134
docs/WEBRTC_FIXES_GUIDE.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# 🛠️ Исправления 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.
|
||||
Reference in New Issue
Block a user