เซิร์ฟเวอร์ TURN

เพื่อให้แอปพลิเคชัน 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);