975 B
975 B
Runtime Loop & Message Flow
Überblick
- Server basiert auf
actix-webundactix-ws. - Jeder WebSocket-Client erhält eine Session über
actix_ws::handle. broadcast::channel(Tokio) fungiert als zentrales Publish/Subscribe-Relay.
Ablauf Heute
- Handshake:
/wsRoute akzeptiert WebSocket-Requests. - Incoming Task: Liest Nachrichten vom Client, deserialisiert
SignalingMessageund sendet sie in den Broadcast-Kanal. - Outgoing Task: Abonniert Broadcast (
rx.recv()) und schreibt jede Nachricht zurück in die Session. - 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
tracingmit Session-ID.