PLOXX
🇫🇷🇬🇧🇪🇸🇩🇪🇮🇹🇳🇱
← Blog

Comment fonctionne un chat vidéo aléatoire ?

Plongée technique dans les coulisses : matchmaking, WebRTC, peer-to-peer, signaling. Tout ce qui se passe entre ton clic et ta première rencontre.

Tu cliques sur "Commencer", et 2 secondes plus tard tu parles à un inconnu en vidéo. Magique ? Pas vraiment. Décomposons les coulisses techniques.

Étape 1 : Le matchmaking

Quand tu lances une session, ton navigateur ouvre une connexion WebSocket avec le serveur de PLOXX. Tu envoies tes critères (mode chat ou vidéo, langue, centres d'intérêt, préférence de genre). Le serveur te place dans une file d'attente.

L'algorithme cherche un autre utilisateur en attente avec des critères compatibles. PLOXX utilise un matching multi-phases : d'abord langue + tag commun, puis langue seule, puis tag seul, enfin n'importe quel partenaire compatible. Cette stratégie maximise la qualité tout en évitant que les utilisateurs attendent indéfiniment.

Étape 2 : Le signaling

Quand deux utilisateurs sont matchés, le serveur leur envoie un message "matched". À ce moment, ils ne sont pas encore connectés directement. Le serveur va leur servir de relais pour échanger les informations nécessaires à établir une connexion peer-to-peer : c'est le signaling.

Les deux navigateurs s'échangent des SDP offers/answers et des ICE candidates via le serveur WebSocket. Ces messages décrivent leurs capacités (codecs vidéo supportés, formats audio, adresses réseau).

Étape 3 : Le WebRTC

WebRTC (Web Real-Time Communication) est le standard du web pour la communication en temps réel. Une fois le signaling terminé, les deux navigateurs établissent une connexion directe, sans plus passer par le serveur.

C'est crucial pour deux raisons :

  • Latence : la vidéo P2P arrive en 20-100 ms, contre 200-500 ms via un serveur intermédiaire.
  • Coûts : un serveur n'a pas à diffuser des dizaines de Mbps de vidéo pour chaque conversation.

Étape 4 : Les serveurs STUN/TURN

Le problème : la plupart des utilisateurs sont derrière un routeur NAT (les box internet). Leur IP "publique" n'est pas directement joignable. C'est là qu'interviennent les serveurs STUN : ils permettent à un navigateur de découvrir sa vraie adresse IP publique et son port externe.

Quand le NAT est trop strict (~10% des cas), STUN ne suffit pas. Il faut alors un serveur TURN qui relaie le trafic. Coûteux en bande passante, mais indispensable pour les utilisateurs en réseau d'entreprise ou mobile carrier strict.

Sur PLOXX, ce relais TURN est forcé pour tous les appels vidéo (et pas seulement en secours) : ton adresse IP n'est jamais exposée à l'inconnu d'en face. La vidéo reste chiffrée de bout en bout — le serveur ne peut pas la voir — au prix d'un peu plus de bande passante serveur.

Étape 5 : La modération

Le défi : la vidéo étant chiffrée de bout en bout, le serveur ne la voit jamais. Comment modérer ? PLOXX combine plusieurs approches :

  • Système de signalement structuré avec motifs (nudité, haine, mineurs...)
  • Capture screenshot de la cam distante envoyée au moment du signalement (uniquement à ce moment-là)
  • Modération humaine avec priorité automatique sur les motifs critiques
  • Bannissement IP avec possibilité de désactivation rapide en cas d'erreur

En résumé

Un chat vidéo aléatoire moderne, c'est un cocktail de : WebSocket pour le matchmaking, WebRTC pour la vidéo P2P, STUN/TURN pour traverser les NAT, et un système de modération humain + automatique pour la sécurité. Tout ça se joue en quelques secondes, invisible pour l'utilisateur.