Clicchi su «Inizia» e 2 secondi dopo stai parlando in video 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. Invii i tuoi criteri (modalità chat o video, lingua, interessi, preferenza di genere). Il server ti mette in coda.
L'algoritmo cerca un altro utente in attesa con criteri compatibili. PLOXX usa un abbinamento a più fasi: prima lingua + tag in comune, poi solo lingua, poi solo tag, infine qualunque partner compatibile. Questa strategia massimizza la qualità evitando attese infinite.
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 questo relè TURN è forzato per tutte le chiamate video, non solo come ripiego: il tuo indirizzo IP non viene mai esposto 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.