そこで、ビデオ、オーディオ、テキストに対応したチャット アプリを構築したいと考えています。WebSocket と WebRTC のどちらを使用するかを決めるために、時間をかけて調査しました。WebRTC に対応したビデオ アプリやオーディオ アプリはたくさんあるので、これが妥当な選択のように思えます。WebRTC と WebSocket の違いは何ですか?
他に考慮すべきことはありますか? 例えば:
WebRTC は新しいため一部のブラウザでのみ使用できますが、WebSocket はより多くのブラウザで使用できるようです。
スケーラビリティ - WebSocket はセッションに集中型サーバーを使用し、WebRTC は P2P です。
多重化/複数のチャットルーム - Google+ ハングアウトで使用されており、実装方法についてはまだデモ アプリを参照中です。
サーバー - WebSocket を複数のマシンに拡張するには、RedisSessionStore または RabbitMQ が必要ですか?
ベストアンサー1
WebRTC は、ビデオ、オーディオ、任意のデータの高性能かつ高品質な通信を目的として設計されています。つまり、まさにあなたが説明しているようなアプリ向けです。
WebRTC アプリには、ネットワークとメディアのメタデータを交換できるサービスが必要です。このプロセスはシグナリングと呼ばれます。ただし、シグナリングが行われると、ビデオ/オーディオ/データはクライアント間で直接ストリーミングされるため、中間サーバーを介したストリーミングのパフォーマンス コストを回避できます。
一方、WebSocketはクライアントとサーバー間の双方向通信用に設計されています。WebSocket経由でオーディオやビデオをストリーミングすることが可能です(ここたとえば、WebRTC はストリーミングに効果的ですが、そのテクノロジと API は、WebRTC のように効率的で堅牢なストリーミングを実現するようには設計されていません。
他の回答者が述べているように、WebSocket はシグナリングに使用できます。
私はリストを維持していますWebRTC リソース: 2013年のGoogle I/Oをまずご覧になることを強くお勧めしますプレゼンテーションWebRTC について。