# Архитектура системы GodEye

## Общий обзор

GodEye - это распределенная система видеонаблюдения, состоящая из трех основных компонентов:

1. **Android клиент** - мобильное устройство с камерой
2. **Сигнальный центр** - backend сервер для координации
3. **Desktop клиент** - рабочее место оператора

## Диаграмма архитектуры

```mermaid
graph TB
    A[Android Client] -->|WebSocket| B[Backend Server]
    B -->|WebSocket| C[Desktop Client]
    A -.->|WebRTC P2P| C
    
    subgraph "Android Device"
        A1[Camera Manager]
        A2[WebRTC Client]
        A3[WebSocket Handler]
    end
    
    subgraph "Backend Server"
        B1[Express API]
        B2[WebSocket Server]
        B3[WebRTC Signaling]
        B4[Connection Manager]
    end
    
    subgraph "Desktop Operator"
        C1[Video Player]
        C2[Request Queue]
        C3[WebRTC Client]
    end
```

## Протоколы коммуникации

### WebSocket сигнализация
- Регистрация устройств
- Обработка запросов на подключение
- Переключение камер
- Управление сессиями

### WebRTC медиапоток
- P2P передача видео (основной режим)
- Низкая задержка
- Автоматическая адаптация качества

### RTSP fallback
- Альтернативный протокол при проблемах с WebRTC
- Стабильная передача через сервер

## Потоки данных

1. **Регистрация**: Android → WebSocket → Backend
2. **Запрос подключения**: Desktop → WebSocket → Backend → Android
3. **Установка соединения**: WebRTC signaling через Backend
4. **Медиапоток**: Android → WebRTC → Desktop (P2P)
5. **Переключение камер**: Desktop → WebSocket → Backend → Android