あり関与コードのかなりのだ、私は、私は一時的githubのレポに持っていたもの投げた:私はのWebRTCを学んだし、長期的にはしたくのWebRTCビデオをリモートでローカルに動作しますが、ない
https://github.com/stevendesu/webrtc-failure
いくつかの面白いことをやるが、今のところ私は簡単に始めている:あるコンピュータから別のコンピュータにビデオを送る。残念ながら、これは失敗しました。 broadcast.html
とwatch.html
:ここでは、私は、私は2つのページを作成したSTUN/TURNサーバ
- ...私がこれまでに設定したものです。前者はメディアストリームを作成し、(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に変換され、ビデオエレメントのソースとして割り当てられます。
私はどのように進行するのか分からない時点です。なぜビデオが表示されていないのかわかりません。
ヒントをありがとう。私は今晩それをぐちゃぐちゃにして、私が理解できるものを見ていきます。コードを近代化する限り、私は 'srcObject'に切り替えます(ブロブのURLを取得しているので動作しません)が、動作するサンプルがあるまで約束を実装するのを待ちます。私の問題の根本的な原因をまだ見つけていないときに、すべてのことを実行する理由はありません。 – stevendesu
申し訳ありませんが、このテストに慣れて実際に答えをマークするまでには、ずっと時間がかかりました。私は先週忙しかった。私がウォッチャーから氷の候補を放出し始めたとき、突然すべてが働いた:) – stevendesu