WebTransport
WebTransport è un protocollo di trasporto di rete basato su HTTP/3, che fornisce capacità di comunicazione bidirezionale tra client e server garantendo bassa latenza, alta velocità di trasferimento e sicurezza.
Casi d'Uso
WebTransport è particolarmente adatto per i seguenti scenari:
- Applicazioni in Tempo Reale: Giochi online, strumenti di collaborazione in tempo reale, videoconferenze e altre applicazioni che richiedono comunicazione a bassa latenza.
- Trasferimento di File di Grandi Dimensioni: Supporta la trasmissione dati ad alta velocità, ideale per lo streaming multimediale e il caricamento/scaricamento di file di grandi dimensioni.
- Comunicazione Multiplexata: Consente l'instaurazione simultanea di più flussi di dati bidirezionali e unidirezionali.
- Comunicazione tramite Datagrammi: Supporta la comunicazione tramite datagrammi senza garanzia di ordine o affidabilità, adatta a scenari con requisiti di tempo reale estremamente elevati.
Rispetto a WebSocket, WebTransport offre una latenza inferiore e modalità di comunicazione più flessibili, performando particolarmente meglio in ambienti di rete instabili.
Implementazione in Salvo
Il framework Salvo fornisce supporto integrato per WebTransport, consentendo agli sviluppatori di costruire facilmente applicazioni basate su WebTransport. Le caratteristiche principali includono:
- Supporto per l'instaurazione di sessioni WebTransport
- Supporto per la comunicazione tramite flussi bidirezionali
- Supporto per la comunicazione tramite flussi unidirezionali
- Supporto per la trasmissione di datagrammi
- Flussi di comunicazione avviati dal server
Esempio Semplice
Di seguito un esempio semplificato di implementazione di un server WebTransport utilizzando Salvo:
Configurazione e Avvio
L'avvio di un'applicazione Salvo con supporto WebTransport richiede la configurazione di certificati TLS e di un listener QUIC:
Esempio Completo
Per saperne di più sull'utilizzo di WebTransport in Salvo, consulta l'esempio completo su GitHub: https://github.com/salvo-rs/salvo/blob/main/examples/webtransport
Questo esempio include implementazioni complete sia per il server che per il client, dimostrando come gestire vari tipi di comunicazione WebTransport.