Haces clic en «Empezar» y 2 segundos después estás hablando por vídeo 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. Envías tus criterios (modo chat o vídeo, idioma, intereses, preferencia de género). El servidor te coloca en una cola de espera.
El algoritmo busca a otro usuario en espera con criterios compatibles. PLOXX usa un emparejamiento por fases: primero idioma + etiqueta común, luego solo idioma, después solo etiqueta y, por último, cualquier pareja compatible. Esta estrategia maximiza la calidad evitando que los usuarios esperen indefinidamente.
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 ese relé TURN está forzado para todas las llamadas de vídeo, y no solo como emergencia: tu dirección IP nunca queda expuesta al 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.