TURN 伺服器

大部分的 WebRTC 應用程式都必須透過伺服器才能在對等互連之間轉發流量,因為用戶端之間通常不允許直接通訊端 (除非位於同一個本機網路)。解決這個問題的常見做法是使用 turn 伺服器。這個術語代表從 NAT 周圍的 Relays 進行傳輸,也是轉發網路流量的通訊協定。

立即在線上提供可用地位串流選項的幾個選項,包括自行託管的應用程式 (例如開放原始碼的 COTURN 專案) 和雲端服務。

當您擁有一個可用線上伺服器時,您只需為用戶端應用程式提供正確的 RTCConfiguration 即可使用。下列程式碼片段說明 RTCPeerConnection 的範例設定,訓練伺服器伺服器主機名稱為 my-turn-server.mycompany.com,且在通訊埠 19403 上執行。設定物件也支援支援伺服器存取權的 usernamecredential 屬性。連線至 turn 伺服器時,此為必要屬性。

const iceConfiguration = {
    iceServers: [
        {
            urls: 'turn:my-turn-server.mycompany.com:19403',
            username: 'optional-username',
            credential: 'auth-token'
        }
    ]
}

const peerConnection = new RTCPeerConnection(iceConfiguration);