init commit
This commit is contained in:
62
docs/ARCHITECTURE.md
Normal file
62
docs/ARCHITECTURE.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Архитектура системы 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
|
||||
Reference in New Issue
Block a user