2

だから私はウェブサイトを立ち上げました。clientaページとclientbページがあります。

これは基本的にこのサイトの分割バージョンです: https ://webrtc-demos.appspot.com/html/pc2.html

クライアント間で情報を交換するためにSignaler(WebSocket)を使用しています。

ユーザーが同じコンピューターでcleintaとbの両方を開くと、正常に機能します。

ユーザーが1台のコンピューターでclientaを開き、別のコンピューターでclientbを開くと、両方のコンピューターが同じネットワーク上にある場合は正常に機能します。

ユーザーが1台のコンピューターでclientaを開き、別のコンピューターでclientbを開くと、異なるネットワークではビデオやオーディオはありません。

氷のメッセージが交換されるとき、私は番号を返すので、それが送られた順序を知っています。反対側では、常に同じ順序で到着するとは限りませんが、オーディオ#1は常にオーディオ#2の前に到着します。ビデオも同じです。

すべての場合で、chromedev24を使用しています。

webrtcではシーケンスとタイミングがすべてだと思います。同じネットワーク上の別々のPCでどのように機能するかを理解していませんが、異なるネットワークでは機能しません。私が同じネットワークiveテストを言うとき、2台のPCを使用した職場と、2台のPCを使用した自宅の両方でテストすることを指摘しておく必要があります。だから私はそれがファイアウォールのことだとは思わない。

何か案は?

https://apprtc.appspot.com/をもう少し関連性の高いリンクとしてチェックしました。彼らは役に立たなかったようですが、これは私にいくつかのsettimeoutsを追加することにつながりました。

最後に、氷のメッセージについて触れました。また、双方がすべてのメッセージを送受信していることにも注意してください。オファーが作成され、回答が作成されます。したがって、同じネットワークマシンで動作します。

アップデート:

jsepとwebrtc.orgによるすべての最新の構文を使用しています

2012年11月15日更新:

では、メディアリレーを作成するためのオープンソースパッケージはありますか?

具体的には.netですが、phpの場合もあります。現在のサイトは公開されています。これにより、複数のネットワークでテストすることができました。したがって、メディアリレー用に別のエンドポイントが必要なようです。

2012年11月16日更新:

私がそれを機能させるか、他の開発者から貴重なインプットを得ることを期待して、私は自分のコードをgithubに公開しています。

https://github.com/thorst/RTC

2012年11月21日更新

このコードは、さまざまなネットワーク接続を除くすべてで機能するようになりました。(この投稿で説明されているように)

2013年5月28日更新

今年のgoogleioは、ターン、スタン、アイスの説明に優れていました。

http://www.youtube.com/watch?feature=player_embedded&v=p2HzZkd2A40

参考までに、古い方が私が始めるのを手伝ってくれました

http://www.youtube.com/watch?v=E8C8ouiXHHk

http://www.youtube.com/watch?v=dAhhniqwkp8

4

1 に答える 1

3

Chrome はまだ TURN を実装していません。STUN は、一部のタイプの NAT でのみ役立ちますが、ホーム ルーターで普及している対称型の NAT では役立ちません。対称 NAT の背後にある 2 つのデバイスを接続するには、パブリック IP を持つメディア リレーが必要です。その標準は TURN https://www.rfc-editor.org/rfc/rfc5766です。

于 2012-11-05T11:51:15.150 に答える