62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
# Архитектура системы 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 |