RTCPeerConnection instances need to exchange metadata in order to set up and maintain a WebRTC 'call':
In other words, an exchange of metadata is required before peer-to-peer audio, video or data streaming can take place. This process is called signaling.
In the examples already completed, the 'sender' and 'receiver' RTCPeerConnection objects are on the same page, so signaling is simply a matter of passing objects between methods.
In a real world application, the sender and receiver RTCPeerConnections are not on the same page, and we need a way for them to communicate metadata.
To reiterate: metadata exchange between WebRTC clients (via a signaling server) is required for RTCPeerConnection to to do audio, video and data streaming (peer to peer).
In this example, we will build