For most WebRTC applications to function a server is required for relaying the traffic between peers, since a direct socket is often not possible between the clients (unless they reside on the same local network). The common way to solve this is by using a TURN server. The term stands for Traversal Using Relay NAT, and it is a protocol for relaying network traffic.
Once you have a TURN server available online, all you need is the correct RTCConfiguration
for your client application to use it. The following code snippet illustrates a sample configuration for a RTCPeerConnection
where the TURN server has the hostname my-turn-server.mycompany.com
and is running on port 19403
. The configuration object also support the username
and credentials
properties for securing the access to the server. These are required when connecting to a TURN server.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credentials: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);