Clicchi su «Inizia» e poco dopo stai parlando con uno sconosciuto. Magia? Non proprio. Scomponiamo le quinte tecniche.
Fase 1: il matchmaking
Quando avvii una sessione, il tuo browser apre una connessione WebSocket con il server di PLOXX. Il server ti mette in coda: su PLOXX ce n'è una sola, uguale per tutti.
L'algoritmo abbina due persone che aspettano in quella coda. Su PLOXX gli incontri si svolgono tutte le sere dalle 21 alle 23 (ora di Parigi), quando tutti giocano nello stesso momento.
Fase 2: il signaling
Quando due utenti vengono abbinati, il server invia loro un messaggio «matched». In quel momento non sono ancora connessi direttamente. Il server fa da tramite per scambiare le informazioni necessarie a stabilire una connessione peer-to-peer: è il signaling.
I due browser si scambiano SDP offers/answers e ICE candidates attraverso il server WebSocket. Questi messaggi descrivono le loro capacità (codec video supportati, formati audio, indirizzi di rete).
Fase 3: il WebRTC
WebRTC (Web Real-Time Communication) è lo standard del web per la comunicazione in tempo reale. Concluso il signaling, i due browser stabiliscono una connessione diretta, senza più passare dal server.
È cruciale per due ragioni:
- Latenza: il video P2P arriva in 20-100 ms, contro 200-500 ms attraverso un server intermedio.
- Costi: un server non deve diffondere decine di Mbps di video per ogni conversazione.
Fase 4: i server STUN/TURN
Il problema: la maggior parte degli utenti è dietro un router NAT (i modem di casa). Il loro IP «pubblico» non è raggiungibile direttamente. Qui entrano in gioco i server STUN: permettono a un browser di scoprire il proprio vero indirizzo IP pubblico e la porta esterna.
Quando il NAT è troppo rigido (circa il 10 % dei casi), STUN non basta. Serve allora un server TURN che inoltri il traffico. Costa banda, ma è indispensabile per chi è su una rete aziendale o su un operatore mobile restrittivo.
Su PLOXX, se hai 15-17 anni, questo relè TURN è usato per ogni tua chiamata video, non solo come ripiego: il tuo indirizzo IP resta nascosto allo sconosciuto davanti a te. Il video resta cifrato end-to-end - il server non può vederlo - al prezzo di un po' più di banda lato server.
Fase 5: la moderazione
La sfida: poiché il video è cifrato end-to-end, il server non lo vede mai. Come moderare allora? PLOXX combina più approcci:
- Sistema di segnalazione strutturato con motivi (nudità, odio, minori…)
- Cattura della camera remota inviata al momento della segnalazione (solo in quel momento)
- Moderazione umana con priorità automatica sui motivi critici
- Ban per IP, revocabile rapidamente in caso di errore
In sintesi
Una videochat casuale moderna è un misto di: WebSocket per il matchmaking, WebRTC per il video P2P, STUN/TURN per attraversare i NAT e un sistema di moderazione umano e automatico per la sicurezza. Tutto questo si gioca in pochi secondi, invisibile all'utente.