สำหรับแอปพลิเคชัน WebRTC ส่วนใหญ่ในการทำงานเซิร์ฟเวอร์จำเป็นสำหรับการถ่ายทอดการรับส่งข้อมูลระหว่างเพียร์เนื่องจากมักไม่สามารถใช้ซ็อกเก็ตโดยตรงระหว่างไคลเอนต์ได้ (เว้นแต่ว่าจะอยู่ในเครือข่ายท้องถิ่นเดียวกัน) วิธีทั่วไปในการแก้ปัญหานี้คือการใช้เซิร์ฟเวอร์ TURN คำนี้ย่อมาจาก Traversal โดยใช้ Relay NAT และเป็นโปรโตคอลสำหรับการถ่ายทอดการรับส่งข้อมูลเครือข่าย
ขณะนี้มีตัวเลือกมากมายสำหรับเซิร์ฟเวอร์ TURN ออนไลน์ทั้งที่เป็นแอปพลิเคชันที่โฮสต์เอง (เช่นโครงการ COTURN แบบโอเพนซอร์ส) และบริการที่ให้บริการบนคลาวด์
เมื่อคุณมีเซิร์ฟเวอร์ TURN ออนไลน์แล้วสิ่งที่คุณต้องมีคือ RTCConfiguration
ถูกต้องเพื่อให้แอปพลิเคชันไคลเอ็นต์ของคุณใช้งานได้ ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างคอนฟิกูเรชันสำหรับ RTCPeerConnection
ที่เซิร์ฟเวอร์ TURN มีชื่อโฮสต์ 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);