2017-11-13 14 views
0

あり関与コードのかなりのだ、私は、私は一時的githubのレポに持っていたもの投げた:私はのWebRTCを学んだし、長期的にはしたくのWebRTCビデオをリモートでローカルに動作しますが、ない

https://github.com/stevendesu/webrtc-failure

いくつかの面白いことをやるが、今のところ私は簡単に始めている:あるコンピュータから別のコンピュータにビデオを送る。残念ながら、これは失敗しました。 broadcast.htmlwatch.html:ここでは、私は、私は2つのページを作成したSTUN/TURNサーバ

  • として動作するようにcoturnを設置所有、開発サーバ上で

    1. ...私がこれまでに設定したものです。前者はメディアストリームを作成し、(Socket.IOを使用して)接続の詳細をシグナリングサーバに送信します。後者は、シグナリングサーバからの接続の詳細を取得し、localhost:2017でサーバーとアクセスそれを実行するためにnpm installことができますnpm startを実行した後、ストリーム

    を見しようとします。

    • ますが、ブロードキャストIDの入力を求められbroadcast.html開封後:だからここ

      をどのような作品です。ここには何も入力することはできますが、通常は数字を増やしています。「1」から始まります。

    • ブロードキャストIDを入力して少し遅れると、画面にウェブカムのフィードが表示されます。コンソールを見ると、いくつかのメッセージがSocket.IOサーバーと交換されているのが分かります。
    • watch.htmlを新しいタブで開くと、ブロードキャストIDの入力が求められます。前と同じIDを入力してください
    • IDを入力して少し遅れると、新しいタブにウェブカムのフィードが表示されます。コンソールを見ると、以前のICE候補と詳細情報がSocket.IOサーバーによって送信され、ウォッチャーが応答したことがわかります。
    • ブロードキャストタブに戻って、回答が受信され、処理されたことを確認できます。接続が確立されました
    • pc変数はグローバルスコープ(PeerConnection)にありますので、コンソールではRTCDataChannelを作成してタブ間で直接メッセージを送信できます(Socket.IOサーバーをバイパスします)
    • 唯一 watch.htmlページにIDを入力する最初の人が実際に見ることができます(これはあるので、それは問題ではないのです、なぜ私が知っている)今の

      はここがない仕事を何です放送。それは「ブロードキャスト」ではなく、単なるピアツーピアであり、一度接続が確立されると将来の接続は失敗します。

    • 私の問題:別のコンピュータまたはデバイスから(同じネットワーク上または

    コンソールを見るとオファーが表示され、氷の候補がウォッチャーに配信され、ウォッチャーが回答を生成し、回答が送信されますウォッチャーはPeerConnectionに追加されたメディアストリームを確認します。このメディアストリームはblob URLに変換され、ビデオエレメントのソースとして割り当てられます。

    私はどのように進行するのか分からない時点です。なぜビデオが表示されていないのかわかりません。

  • 答えて

    2

    あなたのwatch.jsは氷の候補を放出しません。それが原因の1つです。それが役に立たない場合は、chrome:// webrtc-internalsを使って何が起こっているのか把握できます。何が起こっているのかを解説する方法については、hereを参照してください。

    コードを近代化したい場合もあります。 https://webrtc.github.io/samples/src/content/peerconnection/pc1/は、推奨されていないURL.createObjectURLの代わりにsrcObjectを使用するような約束やその他のものを使用する、現代のWebRTCコードのかなり単純な例です。

    +0

    ヒントをありがとう。私は今晩それをぐちゃぐちゃにして、私が理解できるものを見ていきます。コードを近代化する限り、私は 'srcObject'に切り替えます(ブロブのURLを取得しているので動作しません)が、動作するサンプルがあるまで約束を実装するのを待ちます。私の問題の根本的な原因をまだ見つけていないときに、すべてのことを実行する理由はありません。 – stevendesu

    +0

    申し訳ありませんが、このテストに慣れて実際に答えをマークするまでには、ずっと時間がかかりました。私は先週忙しかった。私がウォッチャーから氷の候補を放出し始めたとき、突然すべてが働いた:) – stevendesu

    関連する問題