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