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

สําหรับแอปพลิเคชัน WebRTC ส่วนใหญ่ที่เซิร์ฟเวอร์ต้องทํางานเพื่อส่งต่อการรับส่งข้อมูลระหว่างแอปเทียบเท่า เนื่องจากซ็อกเก็ตโดยตรงมักจะทําไม่ได้ระหว่างไคลเอ็นต์ทั้งสอง (เว้นแต่ว่าจะอยู่ในเครือข่ายภายในเดียวกัน) วิธีทั่วไปในการแก้ปัญหานี้คือ ใช้เซิร์ฟเวอร์ TURN คํานี้หมายถึงการข้ามผ่านที่ใช้ รีเลย์รอบๆ NAT และเป็นโปรโตคอลสําหรับส่งต่อการจราจรของข้อมูลในเครือข่าย

ขณะนี้มีตัวเลือก 2 รายการสําหรับเซิร์ฟเวอร์ TURN ที่พร้อมใช้งานออนไลน์ ทั้งในฐานะแอปพลิเคชันที่โฮสต์ด้วยตนเอง (เช่น โปรเจ็กต์ COTURN แบบโอเพนซอร์ส) และในรูปแบบบริการระบบคลาวด์

เมื่อคุณมี TURN Server ออนไลน์แล้ว สิ่งที่คุณต้องมีคือ 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);