[解決済み】WebRTCとWebsocketの比較。WebRTCがビデオ、オーディオ、データを扱えるなら、なぜWebsocketが必要なのですか?[というご質問をいただきました。]
質問内容
そこで、ビデオ、オーディオ、テキストが使えるチャットアプリを作りたいと考えています。WebsocketとWebRTCについて時間をかけて調査し、どちらを使うか決めました。WebRTCを使ったビデオやオーディオのアプリはたくさんあるので、これは合理的な選択のように思えますが、他に考慮すべきことがあるでしょうか? あなたの考えを自由に共有してください。
のようなものです。
-
WebRTCは新しいため、一部のブラウザでしか利用できませんが、WebSocketはより多くのブラウザに搭載されているようです。
-
スケーラビリティ - Websocketはセッションにサーバーを使用し、WebRTCはP2Pのようです。
-
多重化/複数チャットルーム - Google+ハングアウトで使用されており、実装方法についてデモアプリを閲覧中です。
-
サーバー - Websocketは、複数のマシンにまたがってスケールするためにRedisSessionStoreまたはRabbitMQを必要とします。
解決方法は?
WebRTCは、映像や音声、任意のデータを高性能・高品質に通信するために設計されています。つまり、あなたが説明したようなアプリのためのものです。
WebRTCアプリは、ネットワークとメディアのメタデータを交換するためのサービスを必要とします。これはシグナリングと呼ばれるプロセスです。しかし、シグナリングが行われると、ビデオ/オーディオ/データはクライアント間で直接ストリーミングされ、中間サーバーを介したストリーミングのパフォーマンスコストを回避することができます。
一方、WebSocketは、クライアントとサーバー間の双方向通信を目的として設計されています。WebSocket 上で音声や動画をストリーミングすることが可能です ( こちら しかし、この技術と API は、WebRTC のような効率的で堅牢なストリーミングのために本質的に設計されたものではありません。
他の回答者が言うように、WebSocketはシグナリングに使用することができます。
のリストを管理しています。 WebRTCリソース 2013年Google I/Oから始めることを強くお勧めします。 プレゼンテーション WebRTCについて
関連
-
[解決済み] TraefikでWebSocketをプロキシする方法とは?
-
[解決済み] ライブオーディオストリーミング用Webアプリのアーキテクチャ
-
[解決済み] Long-Polling、Websocket、Server-Sent Events (SSE)、Cometとは何ですか?
-
[解決済み] socket.ioとwebsocketの違いについて
-
[解決済み】HTTP/2はウェブソケットを時代遅れにするのか?
-
[解決済み】WebRTCとWebsocketの比較。WebRTCがビデオ、オーディオ、データを扱えるなら、なぜWebsocketが必要なのですか?[というご質問をいただきました。]
-
[解決済み] Socket.IOの最大同時接続数
-
[解決済み] 1,000,000個のウェブソケットを開き続けるために必要なシステムリソースはどれくらいですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン