Çoğu WebRTC uygulamasının çalışması için istemciler arasında genellikle doğrudan soket kullanılamadığından (aynı yerel ağda bulunmadıkları sürece) trafiği eşler arasında aktarmak üzere bir sunucu gerekir. Bu sorunu çözmenin yaygın yolu, TURN sunucusu kullanmaktır. Bu terim, NAT'ın etrafında Relay'leri kullanarak geçiş anlamına gelir ve ağ trafiğini aktarmaya yönelik bir protokoldür.
Şu anda internette hem kendi kendine barındırılan uygulamalar (ör. açık kaynaklı COTURN projesi) hem de bulut tarafından sağlanan hizmetler olarak TURN sunucuları için çeşitli seçenekler mevcuttur.
İnternette TURN sunucusu kullanıma hazır olduğunda, istemci uygulamanızın bunu kullanması için doğru RTCConfiguration
'e sahip olmanız yeterlidir. Aşağıdaki kod snippet'inde, TURN sunucusunun my-turn-server.mycompany.com
ana makine adına sahip olduğu ve 19403
bağlantı noktasında çalıştığı bir RTCPeerConnection
için örnek bir yapılandırma gösterilmektedir. Yapılandırma nesnesi, sunucuya erişimi güvence altına almak için username
ve credential
özelliklerini de destekler. Bunlar, TURN sunucusuna bağlanırken gereklidir.
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credential: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);