WebTransport
WebTransport es un protocolo de transporte de red basado en HTTP/3 que proporciona capacidades de comunicación bidireccional entre clientes y servidores, garantizando baja latencia, alto rendimiento y seguridad.
Casos de Uso
WebTransport es especialmente adecuado para los siguientes escenarios:
- Aplicaciones en Tiempo Real: Juegos en línea, herramientas de colaboración en tiempo real, videoconferencias y otras aplicaciones que requieren comunicación de baja latencia.
- Transferencia de Archivos Grandes: Admite transmisión de datos de alto rendimiento, ideal para streaming de medios y carga/descarga de archivos grandes.
- Comunicación Multiplexada: Permite establecer múltiples flujos de datos bidireccionales y unidireccionales simultáneamente.
- Comunicación por Datagramas: Admite comunicación por datagramas sin garantía de orden o fiabilidad, adecuada para escenarios con requisitos de tiempo real extremadamente altos.
En comparación con WebSocket, WebTransport ofrece menor latencia y patrones de comunicación más flexibles, especialmente con mejor rendimiento en entornos de red inestables.
Implementación en Salvo
El framework Salvo proporciona soporte integrado para WebTransport, permitiendo a los desarrolladores construir fácilmente aplicaciones basadas en WebTransport. Las características clave incluyen:
- Soporte para establecer sesiones WebTransport
- Soporte para comunicación de flujos bidireccionales
- Soporte para comunicación de flujos unidireccionales
- Soporte para transmisión de datagramas
- Flujos de comunicación iniciados por el servidor
Ejemplo Sencillo
A continuación se muestra un ejemplo simplificado de implementación de un servidor WebTransport usando Salvo:
Configuración e Inicio
Iniciar una aplicación Salvo con soporte WebTransport requiere configurar certificados TLS y un listener QUIC:
Ejemplo Completo
Para aprender más sobre el uso de WebTransport en Salvo, consulta el ejemplo completo en GitHub: https://github.com/salvo-rs/salvo/blob/main/examples/webtransport
Este ejemplo incluye implementaciones completas tanto para servidor como cliente, demostrando cómo manejar varios tipos de comunicación WebTransport.