Document signaling runtime structure
This commit is contained in:
parent
ffad23446a
commit
beb2be6622
18
docs/architecture/runtime_loop.md
Normal file
18
docs/architecture/runtime_loop.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Runtime Loop & Message Flow
|
||||||
|
|
||||||
|
## Überblick
|
||||||
|
- Server basiert auf `actix-web` und `actix-ws`.
|
||||||
|
- Jeder WebSocket-Client erhält eine Session über `actix_ws::handle`.
|
||||||
|
- `broadcast::channel` (Tokio) fungiert als zentrales Publish/Subscribe-Relay.
|
||||||
|
|
||||||
|
## Ablauf Heute
|
||||||
|
1. **Handshake**: `/ws` Route akzeptiert WebSocket-Requests.
|
||||||
|
2. **Incoming Task**: Liest Nachrichten vom Client, deserialisiert `SignalingMessage` und sendet sie in den Broadcast-Kanal.
|
||||||
|
3. **Outgoing Task**: Abonniert Broadcast (`rx.recv()`) und schreibt jede Nachricht zurück in die Session.
|
||||||
|
4. **Routing**: Aktuell kein Filter – alle Clients erhalten jede Nachricht.
|
||||||
|
|
||||||
|
## Erweiterungsplan
|
||||||
|
- **Channel/Room Map**: `HashMap<RoomId, Sender>` oder dedizierter Actor für jede Session.
|
||||||
|
- **Presence Tracking**: Join/Leave Events, Heartbeats.
|
||||||
|
- **Message Typen**: Offer/Answer/Candidate/Text/Broadcast – sollen im Proto beschrieben werden.
|
||||||
|
- **Persistente Logs**: Structured Logging via `tracing` mit Session-ID.
|
||||||
23
docs/config/server_config.md
Normal file
23
docs/config/server_config.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Server-Konfiguration
|
||||||
|
|
||||||
|
## Dateien
|
||||||
|
- `appsettings.example.json`: Vorlage mit `bind` Adresse.
|
||||||
|
- `appsettings.json`: Produktiveinstellung (wird beim Start geladen).
|
||||||
|
|
||||||
|
## Struktur
|
||||||
|
```
|
||||||
|
Config {
|
||||||
|
server: ServerOptions {
|
||||||
|
bind: String,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Defaults (siehe `constants.rs`)
|
||||||
|
- `DEFAULT_BIND = "127.0.0.1:3478"`
|
||||||
|
- `DEFAULT_HOST_URL = "http://localhost:3478"`
|
||||||
|
|
||||||
|
## TODOs
|
||||||
|
- Unterschiedliche Ports für HTTP vs WS (derzeit identisch).
|
||||||
|
- TLS-/WSS-Unterstützung.
|
||||||
|
- Konfigurierbare Allowed Origins, TURN Secrets.
|
||||||
11
docs/index.md
Normal file
11
docs/index.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# niom-signaling Docs
|
||||||
|
|
||||||
|
Kurzdokumentation für den Signaling-Server. Struktur orientiert sich an den Hauptkomponenten (`src/main.rs`, `config`, `constants`).
|
||||||
|
|
||||||
|
- [`architecture/runtime_loop.md`](architecture/runtime_loop.md) – Verbindungshandling & Broadcast.
|
||||||
|
- [`config/server_config.md`](config/server_config.md) – Bind-Adressen und Defaults.
|
||||||
|
|
||||||
|
## Zielsetzung
|
||||||
|
- Rooms/Channels anstelle globalem Broadcast.
|
||||||
|
- Authentifizierung & Health-Checks.
|
||||||
|
- Testbare, deterministische Nachrichtenzustellung.
|
||||||
Loading…
x
Reference in New Issue
Block a user