PLOXX
🇫🇷🇬🇧🇪🇸🇩🇪🇮🇹🇳🇱
← 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 2 seconden later praat je via video 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. Je stuurt je criteria mee (chat- of videomodus, taal, interesses, geslachtsvoorkeur). De server zet je in een wachtrij.

Het algoritme zoekt een andere wachtende gebruiker met passende criteria. PLOXX gebruikt matchen in fasen: eerst taal + gedeelde tag, dan alleen taal, dan alleen tag, en ten slotte elke compatibele partner. Die volgorde maximaliseert de kwaliteit zonder dat iemand eindeloos wacht.

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.

Bij PLOXX is dat TURN-relais verplicht voor alle videogesprekken, niet alleen als noodoplossing: je IP-adres wordt nooit blootgesteld aan 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.