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

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