main funcions fixes

This commit is contained in:
2025-09-29 22:06:11 +09:00
parent 40e016e128
commit c8c3274527
7995 changed files with 1517998 additions and 1057 deletions

208
docs/DEMO.md Normal file
View File

@@ -0,0 +1,208 @@
# 🎥 GodEye Signal Center - Веб-демонстрация
Интерактивная веб-демонстрация системы удаленного доступа к камерам Android устройств.
## 🚀 Быстрый старт
1. **Запуск сервера:**
```bash
cd backend/
node src/server.js
```
2. **Открыть демонстрацию:**
Перейти на http://localhost:3001
## 📋 Возможности демонстрации
### 🏠 Обзор
- Общая статистика системы в реальном времени
- Мониторинг подключений и активных сессий
- Системные логи с фильтрацией по типам
### 📱 Android Device Simulator
- Симуляция Android устройства
- Настройка информации об устройстве (модель, версия, доступные камеры)
- Обработка входящих запросов на доступ к камере
- Управление активными сессиями
### 👨‍💻 Operator Panel
- Симуляция рабочего места оператора
- Просмотр доступных устройств
- Создание запросов на доступ к камерам
- Переключение между типами камер
- Управление активными сессиями
### 🛠️ Admin Panel
- Административные функции системы
- Детальная статистика и мониторинг
- Управление устройствами и сессиями
- Принудительное завершение соединений
- Очистка старых данных
### 🌐 WebRTC Test
- Тестирование WebRTC соединений
- Демонстрация работы с локальной камерой
- Проверка сигнализации между устройством и оператором
## 🔧 Как использовать
### Сценарий 1: Полный цикл подключения
1. **Подготовка устройства:**
- Перейти на вкладку "Android Device"
- Ввести Device ID (например: `demo-device-001`)
- Настроить информацию об устройстве
- Нажать "Подключить устройство"
2. **Подключение оператора:**
- Перейти на вкладку "Operator"
- Ввести Operator ID (например: `demo-operator-001`)
- Нажать "Подключиться как оператор"
3. **Создание сессии:**
- В разделе "Доступные устройства" найти ваше устройство
- Выбрать тип камеры
- Нажать "Запросить камеру"
4. **Обработка на устройстве:**
- Вернуться на вкладку "Android Device"
- В разделе "Входящие запросы" появится запрос
- Нажать "Принять" или "Отклонить"
5. **Управление сессией:**
- Переключение между камерами
- Завершение сессии с любой стороны
### Сценарий 2: Тестирование WebRTC
1. Выполнить шаги 1-4 из Сценария 1
2. Перейти на вкладку "WebRTC Test"
3. Нажать "Запустить локальное видео"
4. Разрешить доступ к камере браузера
5. Наблюдать за установлением WebRTC соединения
## 📊 API Endpoints для тестирования
### Базовые
- `GET /api/status` - общая статистика
- `GET /api/devices` - список устройств
### Операторы (требуют заголовок `X-Operator-Id`)
- `GET /api/operators/devices` - доступные устройства
- `POST /api/operators/camera/request` - запрос камеры
- `POST /api/operators/camera/{sessionId}/switch` - переключение камеры
- `DELETE /api/operators/camera/{sessionId}` - завершение сессии
### Администрирование
- `GET /api/admin/stats` - детальная статистика
- `GET /api/admin/health` - проверка здоровья системы
- `POST /api/admin/cleanup` - очистка старых данных
## 🔍 Мониторинг и отладка
### Логи
- Все действия отображаются в разделе "Системные логи"
- Цветовая маркировка: info (синий), warning (желтый), error (красный)
- Автоматическое ограничение количества записей
### WebSocket Events
Основные события, которые можно наблюдать:
- `register:android` / `register:operator` - регистрация клиентов
- `camera:request` / `camera:response` - запросы и ответы камеры
- `camera:switch` - переключение камер
- `webrtc:*` - WebRTC сигнализация
### Браузерная консоль
Дополнительная отладочная информация доступна в DevTools браузера (F12)
## 🎯 Возможности демонстрации
### ✅ Реализовано
- Полная симуляция Android устройства и оператора
- WebSocket коммуникация в реальном времени
- REST API с аутентификацией
- WebRTC сигнализация (без реального видео)
- Административные функции
- Система мониторинга и логирования
### 🔄 В разработке
- Полная WebRTC интеграция с видеопотоками
- Аутентификация и авторизация
- База данных для хранения сессий
- Масштабирование на несколько серверов
## 🐛 Устранение неполадок
### Сервер не запускается
```bash
# Проверить занятость порта
netstat -tlnp | grep :3001
# Изменить порт в .env файле
echo "PORT=3002" > .env
```
### Ошибки WebSocket соединения
- Убедиться что сервер запущен
- Проверить консоль браузера на ошибки
- Обновить страницу
### Проблемы с WebRTC
- Разрешить доступ к камере в браузере
- Использовать HTTPS для production (для getUserMedia)
- Проверить наличие STUN/TURN серверов
## 📝 Технические детали
### Стек технологий
- **Backend:** Node.js, Express, Socket.IO
- **Frontend:** Vanilla JavaScript, WebRTC API
- **Стили:** Custom CSS с адаптивным дизайном
### Архитектура WebSocket событий
```javascript
// Регистрация
register:android register:success
register:operator register:success
// Управление камерой
camera:request camera:response
camera:switch (обработка переключения)
camera:disconnect camera:disconnected
// WebRTC сигнализация
webrtc:offer webrtc:answer
webrtc:ice-candidate (обработка кандидатов)
```
### Структура REST API
```
/api/
├── status (общедоступные)
├── devices
├── operators/ (требуют X-Operator-Id)
│ ├── devices
│ ├── camera/request
│ ├── sessions
│ └── ...
└── admin/ (администраторские)
├── stats
├── health
└── ...
```
## 🤝 Разработка
Для добавления новых функций в демонстрацию:
1. **Backend изменения:** Править файлы в `src/`
2. **Frontend:** Обновить `public/demo.js` и `public/index.html`
3. **API:** Добавить endpoints в `src/routes/`
4. **Перезапустить сервер** для применения изменений
---
**Примечание:** Это демонстрационная версия для тестирования API и архитектуры.
Для production использования требуются дополнительные меры безопасности,
база данных и полная интеграция с реальными Android и Desktop приложениями.