เพื่อให้แอปพลิเคชัน WebRTC ส่วนใหญ่ทํางานได้ เซิร์ฟเวอร์จําเป็นสําหรับการส่งต่อ ระหว่างแอปเทียบเท่า เนื่องจาก Socket โดยตรงมักจะเป็นไปไม่ได้ระหว่าง (ยกเว้นกรณีที่ลูกค้าอยู่ในเครือข่ายภายในเดียวกัน) วิธีแก้ปัญหาที่ใช้กันทั่วไป โดยใช้เซิร์ฟเวอร์ TURN คำนี้ย่อมาจาก Traversal Using Relays รอบๆ NAT และเป็นโปรโตคอลสำหรับส่งต่อการจราจรของข้อมูลในเครือข่าย
ขณะนี้มีตัวเลือกมากมายสำหรับเซิร์ฟเวอร์ TURN ที่ให้บริการแบบออนไลน์ ทั้งที่เป็น แอปพลิเคชันที่โฮสต์ด้วยตนเอง (เช่น โปรเจ็กต์ COTURN แบบโอเพนซอร์ส) และเป็นระบบคลาวด์ ที่ให้บริการ
เมื่อมีเซิร์ฟเวอร์ TURN ที่ออนไลน์ได้ สิ่งที่คุณต้องมีก็คือ
RTCConfiguration
เพื่อให้แอปพลิเคชันไคลเอ็นต์ใช้งาน รหัสต่อไปนี้
ข้อมูลโค้ดแสดงตัวอย่างการกำหนดค่าสำหรับ RTCPeerConnection
ที่ส่วน
เซิร์ฟเวอร์ TURN มีชื่อโฮสต์ my-turn-server.mycompany.com
และกำลังทำงาน
พอร์ต 19403
ออบเจ็กต์การกำหนดค่ายังรองรับ username
และ
พร็อพเพอร์ตี้ credential
สำหรับรักษาความปลอดภัยในการเข้าถึงเซิร์ฟเวอร์ สิ่งเหล่านี้คือ
ต้องใช้เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ TURN
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credential: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);