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