2

WebRTC のデータ チャネルの PeerJS 実装を使用して、テキスト チャット サービスをセットアップしました。PeerJS はこの目的のために基本的なシグナリング サーバーを提供しますが、私はそれを XirSys (SimpleWebRTC、別の WebRTC ライブラリで推奨) を介してセットアップされた STUN および TURN サーバーに置き換えようとしました。まだ Web に展開していません。

Node を使用してローカルで静的ファイルを提供すると、ローカル ネットワークでは機能します (私がその人の隣に座っており、ブラウザーで私の IP/ポートに移動した場合)、別のアクセス ポイントを介して接続すると機能しません同じネットワーク (つまり、職場、建物の反対側)。

私の仮説は、ファイアウォールにヒットしているが、セットアップしようとした XirSys STUN および TURN サーバーにフォールバックすることなく、PeerJS のシグナリング サーバーにトラフィックを誘導しているというものです。ここに私が取り組んでいるコードがあります:

var stun = {};
var turn1 = {};
var turn2 = {}; 
  $.ajax({
    type: "POST",
    dataType: "json",
    url: "https://api.xirsys.com/getIceServers",
    data: {
        ident: "myusername",
        secret: "long-alphanumeric-secret-key",
        domain: "www.adomain.com",
        application: "anapp",
        room: "aroom",
        secure: 1
    },
    success: function (data, status) {
        console.log(data);
        stun = data.d.iceServers[0];
        turn1 = data.d.iceServers[1];
        turn2 = data.d.iceServers[2];
    },
    async: false
});

var conn;
  // Connect to PeerJS, have server assign an ID instead of providing one
  var peerID = prompt('What would you like your screen name to be?');
  var peer = new Peer(
    peerID, 
    {key: 'mypeerjsserverkey', debug: true}, 
    {
    config: {'iceServers': [
        {url: stun.url},
        {url: turn1.url, credential: turn1.credential, username: turn1.username},
        {url: turn2.url, credential: turn2.credential, username: turn2.username}
      ]
    }
  });

注: 私の ID、シークレット、ドメインなどは、ここでは明らかに正確に表現されていません。それが私の問題だとは思いません。

何かご意見は?

4

1 に答える 1

2

STUN/TURN トラフィックの Wireshark キャプチャをメールで送信していただければ、問題の場所を概説できるはずです。シグナリングを介して送信されるメッセージは別個のものですが、WebRTC メッセージと並行しています。したがって、アプリが動作していてもメッセージがシグナリング経由で送信されている場合は、アプリケーションの構成が正しくない可能性があります。

XirSys は、ポート 80/443 を介して UDP over TCP 経由で TURN を提供するため、シグナリングが接続され流れている場合は、TURN もそうでなければなりません。

また、コードを見ると、getIceServers 成功ハンドラーから PeerJS 構成に data.d を渡すと、コードがかなり削減されるはずです :-) 再構築している ICE 文字列を分割する必要はありません。

よろしく、 Lee XirSys CTO

于 2014-07-12T19:16:47.067 に答える