สําหรับแอปพลิเคชัน 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);