¿Qué es WebRTC?

¿Qué es WebRTC?

WebRTC son las siglas de Web Real-Time Communication, que traducido al español vendría a ser algo así como "Comunicación en Tiempo Real a través de la Web".
Es una tecnología que permite establecer comunicación de audio, vídeo y datos directamente entre navegadores web sin necesidad de instalar plugins adicionales ni descargar software externo.

La clave de WebRTC está en que permite que cualquier navegador web pueda transmitir y recibir audio, vídeo o datos en tiempo real con otros navegadores mediante conexiones directas punto a punto. 

Por resumirlo, WebRTC hace posible que dos o más usuarios puedan comunicarse directamente desde sus navegadores sin que los datos tengan que pasar necesariamente por un servidor intermedio, aunque cuando no es posible establecer esa conexión directa, se utilizan servidores de retransmisión.

Actualmente, WebRTC es compatible con la mayoría de navegadores modernos como Chrome, Firefox, Safari y Edge, lo que significa que prácticamente cualquier usuario puede utilizarlo sin problemas de compatibilidad.

WebRTC se utiliza habitualmente en aplicaciones de videoconferencia como Jitsi Meet, Google Meet o Microsoft Teams, pero también tiene otros usos muy interesantes.
Se pueden encontrar chats en tiempo real que utilizan WebRTC para las comunicaciones, pero también aplicaciones colaborativas donde varios usuarios trabajan simultáneamente sobre un mismo documento, juegos online multijugador, sistemas de notificaciones push en tiempo real o incluso en plataformas de streaming y retransmisión de eventos en directo.

Internamente, WebRTC utiliza varios protocolos para establecer y mantener las conexiones:

  • STUN para descubrir direcciones IP públicas detrás de routers con NAT.

  • TURN para retransmitir tráfico cuando no es posible una conexión directa entre navegadores

  • SDP para negociar las capacidades técnicas de cada extremo de la comunicación, como formatos de audio y vídeo soportados.

En cuanto a la seguridad, WebRTC implementa cifrado de forma nativa utilizando DTLS para el intercambio seguro de claves y SRTP para cifrar las comunicaciones de audio y vídeo.

Esto garantiza que las comunicaciones sean privadas y seguras sin necesidad de implementar capas adicionales de seguridad por parte del desarrollador de la aplicación que utiliza WebRTC.

WebRTC también es compatible con la mayoría de frameworks y lenguajes de programación que se utilizan en desarrollo web.
Por ejemplo, los frameworks más populares de Python como Django, Flask y FastAPI incluyen librerías que facilitan la implementación de WebSockets, que es la tecnología que habitualmente se combina con WebRTC para manejar las comunicaciones en tiempo real de forma eficiente y gestionar la señalización necesaria para establecer las conexiones.

En el caso de Node.js, WebRTC se integra perfectamente con frameworks como Express para crear aplicaciones de comunicación en tiempo real más complejas.
Y lo mismo ocurre con Ruby, que puede implementar WebRTC junto con Action Cable para añadir funcionalidades de comunicación en tiempo real a aplicaciones web, permitiendo crear experiencias interactivas y colaborativas sin necesidad de soluciones de terceros.

Es importante tener en cuenta que, aunque WebRTC permite conexiones directas entre navegadores web, en la práctica muchas aplicaciones necesitan servidores de señalización (como es el caso de Jitsi Meet) para coordinar el establecimiento inicial de las conexiones.
Estos servidores no participan en la transmisión de audio, vídeo o datos una vez establecida la conexión, pero son necesarios para que los navegadores puedan encontrarse e intercambiar la información técnica necesaria para conectarse directamente.

Álvaro Fontela

Álvaro Fontela

Consultor WordPress, además de CEO y cofundador de Raiola Networks. Autor del libro "Curso Práctico de WordPress" y speaker en congresos de marketing digital.

Autor