2

私はProjectRTCを使用しており、Firefox と Android クライアントで正常にテストしました。サーバーコードをリモートサーバー(digitalocean)に配置し、自宅のPCからアクセスします。

ただし、ホーム ADSL、または Firefox を搭載した PC 用の (より遅い) ADSL と Android クライアント用の 3G/4G ネットワークを使用してテストするまでは、すべて正常に動作します。

モバイル経由で PC に 3G/4G ネットワークを使用すると (ホットスポット オプションを使用)、クライアントに接続しようとしますが、javascript コンソールに「Ice Failed」というエラーが表示されます。

TURN クライアントを追加しようとしました

public/javascripts/rtcClient.js

これを追加:

var localId,
config = {
  peerConnectionConfig: {
    iceServers: [

      /*test*/
      {
        "username":"e7db750a-2fcc-40c6-8415-cab22743a68a",
        "url": "turn:turn1.xirsys.com:443?transport=tcp",
        "credential":"287ae254-9380-4f81-af88-e1cc9ed27eb0"
      },

      {
        "username":"e7db750a-2fcc-40c6-8415-cab22743a68a",
        "url": "turn:turn1.xirsys.com:443?transport=udp",
        "credential":"287ae254-9380-4f81-af88-e1cc9ed27eb0"
      },
      /*end test*/

      {
      "url": "stun:stun.l.google.com:19305"
      }
  ]
  },
  peerConnectionConstraints: {
    optional: [{
      "DtlsSrtpKeyAgreement": true,
    }]
  }
},

peerDatabase = {},
localStream,
remoteVideoContainer = document.getElementById('remoteVideosContainer'),
socket = io();

socket.on('message', handleMessage);
socket.on('id', function(id) {
localId = id;
});

しかし、私はまだ「ICEに失敗しました」という運がありませんでした。

私もこれを読もうとしましが、私が探しているものではないと思います。これをモバイル接続で動作させる方法はありますか?

ご関心をお寄せいただきありがとうございます。

4

1 に答える 1

0

ICE 文字列をハードコーディングしないでください。XirSys ICE 文字列は時間に敏感で、30 秒後に有効期限が切れます。接続ごとに新しい ICE 文字列を要求する必要があります。これで問題が解決する場合とそうでない場合がありますが、少なくとも ICE 文字列が問題である可能性は排除されます。

よろしく、リー

于 2016-05-04T21:56:52.813 に答える