WebRTC
作者Justin Uberti
Peter Thatcher
初版2011年 (13年前) (2011)
最新版1.1 / 2017年5月4日 (7年前) (2017-05-04)
リポジトリwebrtc.googlesource.com
Web Real-Time Communication (略称: WebRTC[2]) は、ウェブブラウザやモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信を提供する自由かつオープンソースのプロジェクトである。
ウェブページ内で直接ピア・ツー・ピア通信を行うことによって、プラグインのインストールやネイティブアプリのダウンロードを行わなくても、ウェブブラウザ間のボイスチャット、ビデオチャット、ファイル共有などを実装できるようになる[3]。WebRTCは、Apple、Google、マイクロソフト、Mozilla、Operaがサポートしている。
WebRTC は 1 つのプロトコル仕様(プロトコルスイート)と 1 つの JavaScript API 仕様からなる[4]。これら仕様は W3C および IETF の複数の規格書に跨って定義されている。
WebRTCの目的は、「ブラウザ、モバイルプラットフォーム、IoTデバイス向けのリッチで高品質なRTPアプリケーションを、開発できるようにし、共通のプロトコルセットで通信できるようにすること」である[5]。リファレンス実装がBSDライセンスのフリーソフトウェアとして公開されている。また、マルチメディアフレームワークのGStreamerをベースに実装されたOpenWebRTCという別のフリー実装も存在する。JavaScriptを発明したブレンダン・アイクは、WebRTCのことを 「妨げなく開かれているウェブへの戦いにおける新たな戦線」であると評している[6]。 ブラウザでリアルタイムなコミュニケーションを可能にするWebRTCは、Googleによってオープンソース化されており[7]、IETFによる関連プロトコル[8]とW3Cによるブラウザ対応APIの標準化が進められてきた[9]。 W3CによるWebRTCのドラフト[10]は、Google ChromeとMozilla Firefoxで特別に実験的に実装が行われる。APIはWHATWGに予備的に記述され[11]、ConnectionPeer APIと呼ばれており、Ericsson Labsが仮の標準概念実装として作成している[12]。ウェブリアルタイムコミュニケーションワーキンググループは、この仕様が以下の項目に基づいて進化することを期待している。 WebRTCを構成する主要な API を次に挙げる。 WebRTC には統計のためのAPIもある。 WebRTC自体には、シグナリング(ピア同士の検索と接続確立のためのプロセス)のためのAPIは含まれない。代わりに、アプリケーションではInteractive Connectivity Establishment(ICE)を用いる。なお、ICEのプロセスではシグナリングやNATトラバーサルのためにサーバーを介した通信が必要な場合がある。 WebRTCは以下のブラウザでサポートされている。
歴史
ウェブブラウザでのリアルタイムなコミュニケーションを可能にするこのドキュメントと一緒に一連のプロトコルを定義するためのIETFにおける仲間のRTCWEBグループ[13]での継続的交流の成果
ローカルキャパシティとローカルストリームを公開する時に発生するプライバシー問題
特殊な環境でデータチャネルの実装に関するグループでの技術的ディスカッション[14]
初期の実験を通して得られる経験
他のグループや個人からのフィードバックの受け取り
概要
設計
getUserMedia カメラやマイクなどのメディア入力の利用をユーザーに許可させる[15]。
RTCPeerConnection ピア同士で直接ビデオ・音声をやりとりするためのクラス。シグナリング、コーデックの処理、P2P通信、セキュリティおよび帯域管理を担う[16]。
RTCDataChannel ピア間の双方向通信で任意のデータを扱うためのクラス。WebSocketsと同じAPIを利用しており、レイテンシーが非常に低い[17]。
getStats はWebRTCセッションの統計をWebアプリケーションが取得可能にする。なお、統計に関する仕様は別のW3Cドキュメントになっている[18]。
サポート
PC
Microsoft Edge 12+[19]
Google Chrome 28+
Mozilla Firefox 22+[20]
Safari 11+[21]
Opera 18+[22]
Size:52 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef