Architettura
Tramite l’utilizzo di RTCPeerConnection è possibile instaurare una connessione peer-to-peer tra client e trasmettere in maniera efficiente un flusso di dati. Quando un client vuole condividere informazioni crea un’offerta a cui gli altri client possono rispondere.
In questo modo i client acquisiscono i rispettivi riferimenti ed è possibile il transito delle informazioni. A questo punto i vari client decidono cosa condividere tra di loro.
Il Web server dell’applicazione deve gestire la semplice parte iniziale di comunicazione con la quale vengono scambiate offerta e risposte. In questo modo possiamo anche controllare chi può ricevere le offerte da un chiamante tramite una lista di contatti oppure con la creazione di “stanze” nelle quali ospitare le chat.
Normalmente questo tipo di comunicazioni avvengono tra client non appartenenti alla stessa rete locale e quindi è possibile che si debbano superare proxy, firewall e associare indirizzi pubblici. Per questo è necessario un server Interactive Connectivity Establishment che permette di superare questi ostacoli.
Per questo tutorial utilizzeremo un server ICE messo a disposizione gratuitamente da Google “stun.l.google.com:19302”