main commit

This commit is contained in:
2025-10-04 11:55:55 +09:00
parent c8c3274527
commit 4ceccae6ce
678 changed files with 95975 additions and 185 deletions

134
docs/WEBRTC_FIXES_GUIDE.md Normal file
View 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.