TURN 伺服器

大多數 WebRTC 應用程式都需要伺服器,才能在對等端之間轉送流量,因為客戶端之間通常無法使用直接的通訊端 (除非位於相同的本機網路)。解決這個問題的常見方法是使用 TURN 伺服器。這個詞代表「透過 NAT 使用中繼」,是用於轉送網路流量的通訊協定。

目前網路上有幾種 TURN 伺服器選項,包括自架應用程式 (例如開放原始碼 COTURN 專案) 和雲端提供的服務。

當您在線上取得 TURN 伺服器後,只需要正確的 RTCConfiguration 即可讓用戶端應用程式使用。以下程式碼片段說明 RTCPeerConnection 的設定範例,其中 TURN 伺服器的電腦名稱為 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);