8.7 KiB
8.7 KiB
🎥 GodEye Signal Center - Веб-демонстрация
Интерактивная веб-демонстрация системы удаленного доступа к камерам Android устройств.
🚀 Быстрый старт
- Запуск сервера:
cd backend/
node src/server.js
- Открыть демонстрацию: Перейти на http://localhost:3001
📋 Возможности демонстрации
🏠 Обзор
- Общая статистика системы в реальном времени
- Мониторинг подключений и активных сессий
- Системные логи с фильтрацией по типам
📱 Android Device Simulator
- Симуляция Android устройства
- Настройка информации об устройстве (модель, версия, доступные камеры)
- Обработка входящих запросов на доступ к камере
- Управление активными сессиями
👨💻 Operator Panel
- Симуляция рабочего места оператора
- Просмотр доступных устройств
- Создание запросов на доступ к камерам
- Переключение между типами камер
- Управление активными сессиями
🛠️ Admin Panel
- Административные функции системы
- Детальная статистика и мониторинг
- Управление устройствами и сессиями
- Принудительное завершение соединений
- Очистка старых данных
🌐 WebRTC Test
- Тестирование WebRTC соединений
- Демонстрация работы с локальной камерой
- Проверка сигнализации между устройством и оператором
🔧 Как использовать
Сценарий 1: Полный цикл подключения
-
Подготовка устройства:
- Перейти на вкладку "Android Device"
- Ввести Device ID (например:
demo-device-001) - Настроить информацию об устройстве
- Нажать "Подключить устройство"
-
Подключение оператора:
- Перейти на вкладку "Operator"
- Ввести Operator ID (например:
demo-operator-001) - Нажать "Подключиться как оператор"
-
Создание сессии:
- В разделе "Доступные устройства" найти ваше устройство
- Выбрать тип камеры
- Нажать "Запросить камеру"
-
Обработка на устройстве:
- Вернуться на вкладку "Android Device"
- В разделе "Входящие запросы" появится запрос
- Нажать "Принять" или "Отклонить"
-
Управление сессией:
- Переключение между камерами
- Завершение сессии с любой стороны
Сценарий 2: Тестирование WebRTC
- Выполнить шаги 1-4 из Сценария 1
- Перейти на вкладку "WebRTC Test"
- Нажать "Запустить локальное видео"
- Разрешить доступ к камере браузера
- Наблюдать за установлением 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 интеграция с видеопотоками
- Аутентификация и авторизация
- База данных для хранения сессий
- Масштабирование на несколько серверов
🐛 Устранение неполадок
Сервер не запускается
# Проверить занятость порта
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 событий
// Регистрация
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
└── ...
🤝 Разработка
Для добавления новых функций в демонстрацию:
- Backend изменения: Править файлы в
src/ - Frontend: Обновить
public/demo.jsиpublic/index.html - API: Добавить endpoints в
src/routes/ - Перезапустить сервер для применения изменений
Примечание: Это демонстрационная версия для тестирования API и архитектуры. Для production использования требуются дополнительные меры безопасности, база данных и полная интеграция с реальными Android и Desktop приложениями.