18章WebRTC

WebRTC(Web Real-Time Communication)は様々な標準やプロトコル、JavaScript APIの集合体であり、ブラウザ(ピア)間での音声・動画通信、そしてデータ共有を可能にします。WebRTCは、リアルタイム通信をシンプルなJavaScript APIを通じてすべてのWebアプリケーションが利用できる標準機能にしました。サードパーティ製プラグインや独自ソフトウェアに依存する必要はありません。

音声や動画を使ったテレカンファレンスやP2Pのデータ転送のような、リッチでハイクオリティのRTCアプリケーションを提供するには、ブラウザに多くの新機能が必要です。音声や動画の処理や、新しいアプリケーションAPI、そして半ダース程度の新たなネットワークプロトコルのサポートなどです。ブラウザは、これらのほとんどを3つの主なAPIに抽象化します。

  • MediaStream:音声や動画のストリーム取得
  • RTCPeerConnection:音声や動画の通信
  • RTCDataChannel:任意のアプリケーションデータの通信

どのWebアプリケーションでも、たった十数行程度のJavaScriptコードでP2Pデータ転送やリッチなテレカンファレンス体験を実現できます。これがWebRTCの約束と力です! しかし、これらのAPIは氷山の一角にすぎません。シグナリング、ピアの発見、接続ネゴシエーション、セキュリティなどの新たなプロトコルは、WebRTCの約束を実現するプロトコル群のほんの一部なのです。

当然ながら、WebRTCを実現するアーキテクチャとプロトコルは、接続開始のレイテンシ、プロトコルオーバーヘッド、そして配信様式などのパフォーマンス特性を決定づけます。そして、WebRTCは他のブラウザ通信とは異なり、データ転送にUDPを使用します。しかし、UDPは単なるスタート地点に過ぎません。リアルタイム通信を実現するためには、生のUDPよりもはるかに多くを必要とします。では、詳細に見ていきましょう。 ...

Get ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.