2017-06-28 11 views
0

私は、他のIPアドレスを知ることなくクライアントからクライアントへの通信を実装する方法を模索しています。すでにプロトコルをサポートしているクライアントにとって、TURN(coturnを参照)とWebRTCを使用することは理想的です。しかしTURN specificationから読んで、それは述べて:ピアにIPアドレスを公開せずにTURNを使用したWebRTCルーティング

クライアントは、XOR-PEER-ADDRESS属性とデータ属性を含まなければなりません。 XOR-PEER-ADDRESS属性には、データが送信されるピアのトランスポートアドレスが含まれます。

したがって、このプロトコルはピアIPを持つように指示しているようです。私にとって最適なのは、この属性はルーティングテーブルのTURNサーバ上のIPにマップできる提供(匿名)キーである可能性があります。ルーティングテーブルの更新は、シグナリングサーバによって処理されます。

このような機能をサポートするものがありますか、クライアントとTURN機能を自分で作成する予定ですか?私の場合、すべてのトラフィックはもちろんTURNサーバー経由でルーティングされます。

答えて

1

ユーザーcoTURNとiceTransportPolicyオプションをrelay(デフォルトではall)に設定すると、peerConnectionはrelay candidates(TURN)のみを生成します。
メディアはTURNサーバー経由でのみ流れます。
ピアは、リモートユーザーのIP(Reflex/Host)を認識しません。

Iターンサーバ経由ですべてのトラフィックをすることが可能ですが、ように、例えば、送信表示は、XOR-PEER-ADDRESSにおけるピアIPが含まれ、これを使用することにより

var iceServers = [{"urls":["turn:TURN_IP:3478?transport=udp"],"username":"TURN_USERNAME","credential":"TURN_PASWD"}]; 
var config = {"iceServers": iceServers, "iceTransportPolicy": "relay"}; 
var constraints = [{"DtlsSrtpKeyAgreement": true}]; 
pc = new RTCPeerConnection(config, constraints); 
+0

をfllowingとしてpeerConnectionを作成します。私が見る限り、これは動作しません。 – Mikko

+0

あなたが正しいと思われます.XOR-PEER-ADDRESSにTURNサーバIPが含まれているターンサーバを経由してトラフィックを中継するときです。答えをありがとう! – Mikko

関連する問題