PLOXX
FRENESDEITNL
← Blog

Hoe werkt een willekeurige videochat?

Een technische duik achter de schermen: matchmaking, WebRTC, peer-to-peer, signaling. Alles wat gebeurt tussen je klik en je eerste ontmoeting.

Je klikt op «Start» en even later praat je met een onbekende. Magie? Niet echt. Laten we de technische coulissen uit elkaar halen.

Stap 1: de matchmaking

Als je een sessie start, opent je browser een WebSocket-verbinding met de server van PLOXX. De server zet je in een wachtrij: bij PLOXX is er maar één, dezelfde voor iedereen.

Het algoritme koppelt twee mensen die in die wachtrij staan. Bij PLOXX vinden de ontmoetingen elke avond van 21.00 tot 23.00 uur (Parijse tijd) plaats, wanneer iedereen tegelijk speelt.

Stap 2: de signaling

Zodra twee gebruikers gematcht zijn, stuurt de server hun een «matched»-bericht. Op dat moment zijn ze nog niet rechtstreeks verbonden. De server dient als doorgeefluik voor de informatie die nodig is om een peer-to-peer-verbinding op te zetten: dat is de signaling.

De twee browsers wisselen via de WebSocket-server SDP offers/answers en ICE candidates uit. Die berichten beschrijven hun mogelijkheden (ondersteunde videocodecs, audioformaten, netwerkadressen).

Stap 3: WebRTC

WebRTC (Web Real-Time Communication) is de webstandaard voor communicatie in real time. Zodra de signaling klaar is, bouwen de twee browsers een directe verbinding op, zonder nog via de server te lopen.

Dat is om twee redenen cruciaal:

  • Latentie: P2P-video komt aan in 20-100 ms, tegenover 200-500 ms via een tussenserver.
  • Kosten: een server hoeft niet voor elk gesprek tientallen Mbit/s aan video te versturen.

Stap 4: de STUN/TURN-servers

Het probleem: de meeste gebruikers zitten achter een NAT-router (de internetbox). Hun «publieke» IP is niet rechtstreeks bereikbaar. Daar komen STUN-servers bij kijken: die laten een browser zijn echte publieke IP-adres en externe poort ontdekken.

Is het NAT te streng (zo'n 10 % van de gevallen), dan volstaat STUN niet. Dan is een TURN-server nodig die het verkeer doorgeeft. Dat kost bandbreedte, maar is onmisbaar voor wie op een bedrijfsnetwerk of bij een strikte mobiele provider zit.

Ben je 15 tot 17 jaar, dan wordt dat TURN-relais bij PLOXX bij elk van je videogesprekken gebruikt, niet alleen als noodoplossing: je IP-adres blijft verborgen voor de onbekende tegenover je. De video blijft end-to-end versleuteld - de server kan hem niet zien - ten koste van wat meer serverbandbreedte.

Stap 5: de moderatie

De uitdaging: omdat de video end-to-end versleuteld is, ziet de server hem nooit. Hoe modereer je dan? PLOXX combineert meerdere aanpakken:

  • Gestructureerd meldsysteem met redenen (naaktheid, haat, minderjarigen…)
  • Opname van de camera aan de andere kant, verstuurd op het moment van de melding (en alleen dan)
  • Menselijke moderatie met automatische voorrang bij kritieke redenen
  • IP-ban, bij vergissing snel weer op te heffen

Samengevat

Een moderne willekeurige videochat is een mix van: WebSocket voor het matchen, WebRTC voor P2P-video, STUN/TURN om NATs te doorkruisen en een moderatiesysteem van mens en techniek voor de veiligheid. Dat alles speelt zich af in enkele seconden, onzichtbaar voor de gebruiker.