अधिकांश WebRTC अनुप्रयोगों के लिए एक सर्वर कार्य करने के लिए साथियों के बीच यातायात को रिले करने के लिए आवश्यक है, क्योंकि क्लाइंट के बीच एक सीधा सॉकेट अक्सर संभव नहीं होता है (जब तक कि वे एक ही स्थानीय नेटवर्क पर नहीं रहते)। इसे हल करने का सामान्य तरीका TURN सर्वर का उपयोग करना है। यह शब्द ट्रेवरल रिले रिले नेट का उपयोग करने के लिए खड़ा है, और यह नेटवर्क ट्रैफ़िक को रिले करने के लिए एक प्रोटोकॉल है।
वर्तमान में TURN सर्वर के लिए कई विकल्प उपलब्ध हैं, दोनों स्वयं-होस्ट किए गए एप्लिकेशन (जैसे ओपन-सोर्स COTURN प्रोजेक्ट) और क्लाउड प्रदान की गई सेवाओं के रूप में।
एक बार जब आपके पास एक TURN सर्वर ऑनलाइन उपलब्ध होता है, तो आपको इसका उपयोग करने के लिए अपने क्लाइंट एप्लिकेशन के लिए सही RTCConfiguration
आवश्यकता होती है। निम्न कोड स्निपेट RTCPeerConnection
लिए एक नमूना कॉन्फ़िगरेशन दिखाता है जहां TURN सर्वर में hostname my-turn-server.mycompany.com
और यह पोर्ट 19403
पर चल रहा है। कॉन्फ़िगरेशन ऑब्जेक्ट सर्वर तक पहुंच को सुरक्षित करने के लिए username
और credentials
गुणों का भी समर्थन करता है। TURN सर्वर से कनेक्ट करते समय इनकी आवश्यकता होती है।
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credentials: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);