LA QUESTION DU SERVEUR
Existe-t-il un serveur WebRTC ?
Pas dans le chemin média, et c'est tout l'intérêt. Une fois que les deux applications se sont trouvées, l'audio, la vidéo et les données voyagent directement entre elles. Rien de ce que tu héberges ne voit la charge utile, et rien de ce que tu héberges n'a besoin de monter en charge avec le nombre de minutes que tes utilisateurs passent en communication.
Il reste tout de même deux serveurs dans le tableau, et il est utile d'être précis sur ce que fait chacun, parce qu'on les confond souvent.
Le serveur de signalisation est le tien. Il relaie une poignée de messages texte entre deux pairs avant le début de l'appel, puis se tait. Il ne voit jamais de média. Dans cette démonstration, ce sont quinze lignes de Delphi bâties sur TsgcWebSocketServer.
Le serveur STUN et TURN existe à cause du NAT, pas à cause de WebRTC. Un serveur STUN répond à une seule question, « de quelle adresse publique ce paquet est-il arrivé », et c'est tout. Un serveur TURN relaie les paquets pour les paires qui ne peuvent se joindre d'aucune autre façon, c'est donc la seule pièce qui transporte du média, et uniquement pour les appels qui en ont besoin. Les serveurs STUN publics sont gratuits et nombreux, TURN s'héberge soi-même, et sgcWebSockets Enterprise livre à la fois un composant serveur STUN et un composant serveur TURN si tu préfères ne pas faire tourner un démon séparé.