WebTransport
O WebTransport é um protocolo de transporte de rede baseado em HTTP/3, que fornece capacidades de comunicação bidirecional entre clientes e servidores, garantindo baixa latência, alta taxa de transferência e segurança.
Casos de Uso
O WebTransport é particularmente adequado para os seguintes cenários:
- Aplicações em Tempo Real: Jogos online, ferramentas de colaboração em tempo real, videoconferências e outras aplicações que exigem comunicação de baixa latência.
- Transferências de Arquivos Grandes: Suporta transmissão de dados de alta taxa de transferência, ideal para streaming de mídia e upload/download de arquivos grandes.
- Comunicação Multiplexada: Permite estabelecer simultaneamente múltiplos fluxos de dados bidirecionais e unidirecionais.
- Comunicação por Datagrama: Suporta comunicação por datagrama sem garantia de ordem ou confiabilidade, adequada para cenários com requisitos de tempo real extremamente altos.
Comparado ao WebSocket, o WebTransport oferece menor latência e padrões de comunicação mais flexíveis, especialmente com melhor desempenho em ambientes de rede instáveis.
Implementação no Salvo
O framework Salvo fornece suporte integrado para WebTransport, permitindo que os desenvolvedores construam facilmente aplicações baseadas em WebTransport. As principais funcionalidades incluem:
- Suporte para estabelecer sessões WebTransport
- Suporte para comunicação por fluxo bidirecional
- Suporte para comunicação por fluxo unidirecional
- Suporte para transmissão de datagramas
- Fluxos de comunicação iniciados pelo servidor
Exemplo Simples
Abaixo está um exemplo simplificado de implementação de um servidor WebTransport usando Salvo:
Configuração e Inicialização
Iniciar uma aplicação Salvo com suporte a WebTransport requer a configuração de certificados TLS e um listener QUIC:
Exemplo Completo
Para saber mais sobre como usar WebTransport no Salvo, consulte o exemplo completo no GitHub: https://github.com/salvo-rs/salvo/blob/main/examples/webtransport
Este exemplo inclui implementações completas tanto para servidor quanto para cliente, demonstrando como lidar com vários tipos de comunicação WebTransport.