PLOXX
FRENESDEITNL
← Blog

¿Cómo funciona un chat de vídeo aleatorio?

Inmersión técnica entre bastidores: emparejamiento, WebRTC, peer-to-peer, señalización. Todo lo que ocurre entre tu clic y tu primer encuentro.

Haces clic en «Empezar» y poco después estás hablando con un desconocido. ¿Magia? No exactamente. Vamos a desmontar los bastidores técnicos.

Paso 1: el emparejamiento

Cuando lanzas una sesión, tu navegador abre una conexión WebSocket con el servidor de PLOXX. El servidor te coloca en una cola de espera: en PLOXX solo hay una, la misma para todo el mundo.

El algoritmo empareja a dos personas que esperan en esa cola. En PLOXX, los encuentros tienen lugar todas las noches de 21:00 a 23:00 (hora de París), cuando todo el mundo juega a la vez.

Paso 2: la señalización

Cuando dos usuarios quedan emparejados, el servidor les envía un mensaje «matched». En ese momento todavía no están conectados directamente. El servidor les sirve de relé para intercambiar la información necesaria para establecer una conexión peer-to-peer: eso es la señalización.

Los dos navegadores se intercambian SDP offers/answers y ICE candidates a través del servidor WebSocket. Esos mensajes describen sus capacidades (códecs de vídeo soportados, formatos de audio, direcciones de red).

Paso 3: el WebRTC

WebRTC (Web Real-Time Communication) es el estándar de la web para la comunicación en tiempo real. Una vez terminada la señalización, los dos navegadores establecen una conexión directa, sin pasar ya por el servidor.

Es crucial por dos razones:

  • Latencia: el vídeo P2P llega en 20-100 ms, frente a 200-500 ms a través de un servidor intermedio.
  • Costes: un servidor no tiene que difundir decenas de Mbps de vídeo por cada conversación.

Paso 4: los servidores STUN/TURN

El problema: la mayoría de los usuarios están detrás de un router NAT (los routers domésticos). Su IP «pública» no es directamente alcanzable. Ahí entran los servidores STUN: permiten a un navegador descubrir su verdadera dirección IP pública y su puerto externo.

Cuando el NAT es demasiado estricto (alrededor del 10 % de los casos), STUN no basta. Hace falta entonces un servidor TURN que retransmita el tráfico. Cuesta ancho de banda, pero es indispensable para quienes están en una red de empresa o en un operador móvil restrictivo.

En PLOXX, si tienes entre 15 y 17 años, ese relé TURN se usa en todas tus llamadas de vídeo, y no solo como emergencia: tu dirección IP queda oculta para el desconocido que tienes enfrente. El vídeo sigue cifrado de extremo a extremo (el servidor no puede verlo), a cambio de algo más de ancho de banda de servidor.

Paso 5: la moderación

El reto: como el vídeo está cifrado de extremo a extremo, el servidor no lo ve nunca. ¿Cómo moderar entonces? PLOXX combina varios enfoques:

  • Sistema de denuncia estructurado con motivos (desnudez, odio, menores…)
  • Captura de la cámara remota enviada en el momento de la denuncia (únicamente en ese momento)
  • Moderación humana con prioridad automática para los motivos críticos
  • Baneo por IP con posibilidad de retirarlo rápido en caso de error

En resumen

Un chat de vídeo aleatorio moderno es un cóctel de: WebSocket para el emparejamiento, WebRTC para el vídeo P2P, STUN/TURN para atravesar los NAT y un sistema de moderación humano y automático para la seguridad. Todo eso ocurre en unos segundos, invisible para el usuario.