WebTransport
WebTransport ist ein auf HTTP/3 basierendes Netzwerktransportprotokoll, das bidirektionale Kommunikationsfähigkeiten zwischen Clients und Servern bereitstellt und dabei niedrige Latenz, hohen Durchsatz und Sicherheit gewährleistet.
Anwendungsfälle
WebTransport eignet sich besonders für folgende Szenarien:
- Echtzeitanwendungen: Online-Spiele, Echtzeit-Kollaborationstools, Videokonferenzen und andere Anwendungen, die niedrige Latenz erfordern.
- Große Dateiübertragungen: Unterstützt Hochdurchsatz-Datenübertragung, ideal für Medienstreaming und große Datei-Uploads/Downloads.
- Multiplex-Kommunikation: Ermöglicht gleichzeitige Einrichtung mehrerer bidirektionaler und unidirektionaler Datenströme.
- Datagramm-Kommunikation: Unterstützt Datagramm-Kommunikation ohne garantierte Reihenfolge oder Zuverlässigkeit, geeignet für Szenarien mit extrem hohen Echtzeitanforderungen.
Im Vergleich zu WebSocket bietet WebTransport niedrigere Latenz und flexiblere Kommunikationsmuster, insbesondere in instabilen Netzwerkumgebungen.
Salvo-Implementierung
Das Salvo-Framework bietet integrierte Unterstützung für WebTransport, sodass Entwickler leicht WebTransport-basierte Anwendungen erstellen können. Wichtige Funktionen umfassen:
- Unterstützung für die Einrichtung von WebTransport-Sitzungen
- Unterstützung für bidirektionale Stromkommunikation
- Unterstützung für unidirektionale Stromkommunikation
- Unterstützung für Datagramm-Übertragung
- Server-initiierte Kommunikationsströme
Einfaches Beispiel
Hier ist ein vereinfachtes Beispiel für die Implementierung eines WebTransport-Servers mit Salvo:
Konfiguration und Start
Das Starten einer Salvo-Anwendung mit WebTransport-Unterstützung erfordert die Konfiguration von TLS-Zertifikaten und einem QUIC-Listener:
Vollständiges Beispiel
Um mehr über die Verwendung von WebTransport in Salvo zu erfahren, sehen Sie sich das vollständige Beispiel auf GitHub an: https://github.com/salvo-rs/salvo/blob/main/examples/webtransport
Dieses Beispiel enthält vollständige Implementierungen für Server und Client und zeigt, wie verschiedene Arten von WebTransport-Kommunikation behandelt werden.