為了使大多數WebRTC應用程序正常運行,需要服務器來中繼對等方之間的通信,因為客戶端之間通常不可能建立直接套接字(除非它們位於同一本地網絡上)。解決此問題的常用方法是使用TURN服務器。該術語代表使用中繼NAT進行遍歷,它是用於中繼網絡流量的協議。
當前,TURN服務器可以在線使用多個選項,既可以作為自託管應用程序(例如開源COTURN項目),也可以作為雲提供的服務。
在線擁有TURN服務器後,您所需RTCConfiguration
為客戶端應用程序使用它提供正確的RTCConfiguration
。以下代碼段說明了RTCPeerConnection
的示例配置,其中TURN服務器的主機my-turn-server.mycompany.com
並在端口19403
上運行。配置對像還支持username
和credentials
屬性,以確保對服務器的訪問安全。連接到TURN服務器時需要這些。
const iceConfiguration = {
iceServers: [
{
urls: 'turn:my-turn-server.mycompany.com:19403',
username: 'optional-username',
credentials: 'auth-token'
}
]
}
const peerConnection = new RTCPeerConnection(iceConfiguration);