4

私はWebRTCをいじっていますが、達成したいのは次のとおりです。

User1 は 192.168.xx でブラウザを開きます

User2 は 192.168.xx でブラウザを開きます 同じページ

ユーザー 1 が通話をクリックすると、ユーザー 2 が自分の画面にストリームを表示します。

node と socket.io を使用してシグナリング サーバーを作成し、socket.io ルームを使用してユーザー間でメッセージを交換できます。

私がフォローしている手順は次のとおりです。

  • ユーザーメディアを取得
  • peerconnection1 を作成します - ice サーバーはありません
  • ピア接続にストリームを追加します
  • オファーを作成する
  • ソケット経由でオファーを送る
  • オファーを受け取り、peerconnection2 を作成します - アイスサーバーはありません
  • 答えを送る

また、「onececandidate」と「onaddstream」にログを記録して、いつ呼び出されるかを確認し、「onaddstream」でビデオ要素を作成します。

通話ボタンを押すと、他のコンピューターでビデオ要素が黒くなりますが、ビデオもオーディオも表示されません。確かに、いくつかの重要なステップが欠けています。

誰かが正しい呼び出しを行い、必要なすべてのデータを交換してストリームを反対側に表示するために必要な手順を教えてもらえますか?

どうもありがとうございました

4

2 に答える 2

5
A STUN server is used to get an external network address.
TURN servers are used to relay traffic if direct (peer to peer) connection fails. 

ピア接続がどのように機能するかを説明するこの画像を参照してください

webRTCの基本

ここに画像の説明を入力

于 2014-05-06T21:48:26.697 に答える
0

ICE サーバーの 1 つに対して少なくとも 1 つのスタン サーバーが参照されている必要があります。|| 「stun:stun.l.google.com:19302」を使用します || 「stun:23.21.150.121」、技術的には必要ありませんが。

ただし、ICE サーバーがない場合は、候補の収集について心配する必要はありません。起こりうることがいくつかあります。

  • オファーを作成して回答を作成する前に、必ずストリームを各接続に追加してください。ユーザー メディアを取得すると表示されますが、それをピア接続に追加するわけではありません。
  • ローカルおよびリモートの説明を設定していません
    • オファリング コンピューターは、作成時にローカルの説明を設定する必要があります。
    • 応答するコンピューターは、リモートの説明をオファリングの説明で設定し、ローカルの説明を作成したもので設定する必要があります。
    • 回答 sdp を最初に提供したコンピューターに送信し、その提供コンピューターがそれをリモートの説明として設定していることを確認してください。

必要なストリームを追加し、説明を作成し、それに応じてローカルおよびリモートの説明を設定しない限り、ストリームは互いに送信されません。

それでもうまくいかない場合は、ページのコードを投稿する必要があります。

于 2014-05-06T16:08:52.620 に答える