WebTransport
WebTransport est un protocole de transport réseau basé sur HTTP/3, offrant des capacités de communication bidirectionnelle entre clients et serveurs tout en garantissant une faible latence, un débit élevé et la sécurité.
Cas d'utilisation
WebTransport est particulièrement adapté aux scénarios suivants :
- Applications en temps réel : Jeux en ligne, outils de collaboration en temps réel, visioconférence et autres applications nécessitant une communication à faible latence.
- Transferts de fichiers volumineux : Prend en charge la transmission de données à haut débit, idéale pour le streaming multimédia et le téléchargement/upload de fichiers volumineux.
- Communication multiplexée : Permet d'établir simultanément plusieurs flux de données bidirectionnels et unidirectionnels.
- Communication par datagrammes : Prend en charge la communication par datagrammes sans garantie d'ordre ou de fiabilité, adaptée aux scénarios nécessitant des exigences de temps réel extrêmement élevées.
Comparé à WebSocket, WebTransport offre une latence plus faible et des modes de communication plus flexibles, avec des performances particulièrement meilleures dans des environnements réseau instables.
Implémentation dans Salvo
Le framework Salvo fournit une prise en charge intégrée de WebTransport, permettant aux développeurs de créer facilement des applications basées sur WebTransport. Les fonctionnalités clés incluent :
- Prise en charge de l'établissement de sessions WebTransport
- Prise en charge de la communication par flux bidirectionnels
- Prise en charge de la communication par flux unidirectionnels
- Prise en charge de la transmission par datagrammes
- Flux de communication initiés par le serveur
Exemple simplifié
Voici un exemple simplifié d'implémentation d'un serveur WebTransport avec Salvo :
Configuration et démarrage
Le démarrage d'une application Salvo avec prise en charge WebTransport nécessite la configuration de certificats TLS et d'un écouteur QUIC :
Exemple complet
Pour en savoir plus sur l'utilisation de WebTransport dans Salvo, consultez l'exemple complet sur GitHub : https://github.com/salvo-rs/salvo/blob/main/examples/webtransport
Cet exemple inclut des implémentations complètes pour le serveur et le client, démontrant comment gérer différents types de communication WebTransport.