TURN サーバー

ほとんどの WebRTC アプリケーションが機能するには、ピア間でトラフィックをリレーするサーバーが必要です。これは、クライアント間で直接ソケットを設定できないことが多く(同じローカル ネットワーク上に存在する場合を除く)、この問題を解決する一般的な方法は、TURN サーバーを使用することです。この用語は、NAT を介したリレーを使用したトラバーサルの略で、ネットワーク トラフィックをリレーするプロトコルです。

現在、TURN サーバーは、セルフホスト アプリケーション(オープンソースの COTURN プロジェクトなど)とクラウド提供サービスとして、オンラインで利用できるオプションがいくつかあります。

オンラインで利用可能な TURN サーバーを用意したら、クライアント アプリケーションで使用するための正しい RTCConfiguration があれば、あとは何も必要ありません。次のコード スニペットは、TURN サーバーのホスト名が my-turn-server.mycompany.com で、ポート 19403 で実行されている RTCPeerConnection の構成例を示しています。構成オブジェクトは、サーバーへのアクセスを保護するための 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);