1. ホーム
  2. websocket

[解決済み】WebRTCとWebsocketの比較。WebRTCがビデオ、オーディオ、データを扱えるなら、なぜWebsocketが必要なのですか?[というご質問をいただきました。]

2022-04-02 23:07:01

質問内容

そこで、ビデオ、オーディオ、テキストが使えるチャットアプリを作りたいと考えています。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について