2017-07-11 20 views
0

私は、AndroidアプリケーションとWebページ(角2に基づく)との間でWebRTC通信を作成するプロジェクトを作成します。WebRTC - 異なるネットワーク間の通信

2つのデバイスが同じネットワークにある場合、2つのアプリケーションが作成され、通信が正常に機能します。

私の問題は2つのネットワークの場合です。このために、私はTURNサーバーを使用します。私のアンギュラアプリケーションで

私はこのようなRTCConfigurationを追加します。

conf: RTCConfiguration = {'iceServers': [ 
    { 'urls': 'stun:numb.viagenie.ca'} 
]}; 

... 

this.pc = new RTCPeerConnection(this.conf); 

そして、私はこれを使用して、私のAndroidアプリケーションで:

iceServers.add(new PeerConnection.IceServer("stun:numb.viagenie.ca")); 

私はまた、GoogleのTURNサーバー(stun:stun.l.google.com:19302)をテストしました。

WebRTC内部のログでは、2つの異なるネットワーク間でアプリケーションを使用すると、私はIceConnectionChanged: CONNECTEDを受け取ることはありません。

私は同じトピックについて多くの投稿を見ましたが、どれも私を助けませんでした。

誰でも手伝ってもらえますか?

はありがとう

+0

あなたはTURNではなくSTUNを使用しています(そして、[TURNサーバを自由に使う](https://stackoverflow.com/a/42104795/918910)などはありません)。ほとんどの場合、STUNは正常に動作するはずですが、状況によってはTURNだけが動作します。 – jib

答えて

0

ジブを使用すると、任意の自由TS良く、サーバー・マシンのいずれかで、TSとしてではなく、その前に、ネットワークのいずれかをテストしてみてください(xirsysなどしてみてください他のオープンソース)COTURNをインストールしてみません述べたようにユーザーの背後にあるファイアウォールは対称です。もし誰かが対称的なファイアウォールの後ろにいるならば、TURNサーバだけが有用でないでしょう。

stun:stun.l.google.com:19302あなたが言及したサーバーはTURNではないSTUNサーバーです。また、UDPフラッディングのような他のネットワークをチェックし、帯域幅の制限はファイアウォールのどこでも実行されません。

関連する問題