0

私たちは WebRTC をいじって、その利点を理解しようとしています。

Skype が何億人もの人々にサービスを提供できる理由の 1 つは、その分散型のピア ツー ピア アーキテクチャにより、サーバー コストが抑えられるからです。

WebRTC を使用すると、アーキテクチャを分散化できるという点で Skype に似たビデオ チャット アプリケーションを構築できますか (つまり、ビデオ ストリームは放送局から中央サーバーを介してリスナーにルーティングされるのではなく、放送局からリスナーに直接ルーティングされます)?

または、別の言い方をすれば、WebRTC によって、誰かが Skype に似た P2P アーキテクチャの利点を本質的に複製できるようになるのでしょうか?

それとも、Skype の P2P アーキテクチャに似たものが必要ですか?

4

2 に答える 2

3

はい、それは基本的に WebRTC が行うことです。getPeerConnection() API を使用した呼び出しは、中央サーバーを介して音声/ビデオ データを送信するのではなく、ICE、STUN、TURN などのファイアウォール トラバーサル プロトコルを使用して、直接のピアツーピア接続を許可します。ただし、最初の呼び出しのセットアップにはまだサーバーが必要です (ほとんどの場合、WebSocket 実装を実行するものですが、JavaScript と対話する方法を理解できるものであれば何でもかまいません)。両方ともオンラインで、接続したいことを知らせてから、接続方法を見つけます (これが ICE/STUN/TURN ビットの出番です)。

ただし、Skype の P2P アーキテクチャには、音声/ビデオ データをやり取りするだけではありません。Skype の IP の大部分は、コーデックやプロトコルに含まれていません (その多くは、Google が 2 年前に購入してオープンソース化したグローバル IP ソリューションからライセンス供与され、Chrome の WebRTC 実装の基礎となっています)。Skype の実際の IP はすべて WebRTC の一部であり、依然としてサーバーに依存しています。どのユーザーがオンラインで、どこにいて、どのようにそれらを取得するかを把握し、それを規模な分散方式で実行します。(大まかな詳細については、こちらを参照してください。)おそらくDataStreamを使用できると思いますgetPeerConnection() API の一部を使用して、そのようなことを行うことができます。ただし、それは複雑であり、Skype のいくつかの特許を踏みにじる可能性が高いでしょう。本当に巨大になりたくないのであれば、独自の中央集中型のプレゼンス サーバーとロケーション サーバーを実行し、それらすべてを標準の WebSocket 経由で処理したいだけでしょう。

于 2012-11-28T00:58:46.160 に答える
1

Skype のネットワーク アーキテクチャは、作成されてから変更されていることに注意してください。クライアント 1 からクライアント 2 にデータを中継するためにスーパーノードとしてランダムなユーザーを使用しなくなりました。それはうまくスケーリングできず、結果に大きな変動をもたらしました (そして、ファイアウォールのない接続と帯域幅を持っている人々を悩ませました)。

間違いなく、WebRTC を使用して SKype のようなものを構築できます。:-)

于 2012-11-29T05:08:09.427 に答える