Files
god_eye/docs/DEMO.md
2025-09-29 22:06:11 +09:00

208 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🎥 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 приложениями.