2013年10月5日土曜日
WebRTC調査 1
WebRTC = Web Real-Time Communications
・ブラウザ上でリアルタイムコミュニケーションを実現する為の仕様
・双方向性のあるコミュニケーションを必要とする様々なアプリ開発
ビデオ/音声チャット
テキストの共同編集
ゲーム等
P2P通信を利用して端末間の相互接続が可能
サーバを経由しない?
※でも最初ネゴシエーションする為のサーバは必要
そしてNAT越えする場合(ルータのNAT越えとかでなくトンネルサーバ)も必要
http://www.infoq.com/jp/news/2013/06/wrangling-webrtc
UDPプロトコル
アーキテクチャ
1Media Capture and Streams (getUserMedia)
・ローカルのカメラやマイクからストリームデータを取得、加工も可能
・通信時のストリーム定義
2WebRTC 1.0
getUserMedia
webkitでは・・・
canvasと連携して画像処理
web audio apiと連携して音声処理
顔認識、ジェスチャー
WebRTC 1.0 WebRTC Between Browsers
・主にP2P通信の為の仕様が定義
・端末間の相互接続の為のネゴシエーションを行う
・P2Pによるデータ通信(Data channel)などもある
・APIは複雑で難解?
P2P通信を始めるための事前準備
・最初のネゴシエーションを仲介する為のサーバを用意WebサーバでオK
・NAT越えするためのICEサーバを用意
NAT traversal (NAT越え)の問題
・P2P通信を開始する為にはお互いの端末のグローバルアドレスを知る必要がある
・しかし・・各端末お前にはファイアウォールなどがあるので、一筋縄ではいかないごた
・そのために必要なのがICE
・ICEで取得したグローバルIPとポート番号を通信するホスト間で交換
ICE
・STUNやTURNなどのNAT越えの手順をよろしくやってくれるもの
・STUNでだめならTURNで
STUN (Simple Traversal of UDP through NATs)
・NAT越えの方法の一つ
・通信するホストがSTUNサーバにUDP接続を行う
・NATが割り当てたグローバルIPとポート番号を取得
・STUNで対応できるNATはフルコーン型、制御コーン型、ポート制御コーン型の3つ
TURN (Traversal Using Relay NAT)
・NAT越えの方法の一つ
・対称型や多段NATでもオK
・すべての通信をTURNを経由して行うので、高負荷。高コスト
APIのほとんどがこの部分を解決する為のネゴシエーション
ライブラリがあるっぽい
1. simpleWebRTC
公式ホームページ
http://lab.adn-mobasia.net/?p=1887
2. Peer.js
・Data Channelのみサポート
・ブローカーサーバーが提供されている(API Keyの申請が必要)
・connect()メソッドでP2Pのネゴシエーションを完了
公式ホームページ
個人ブログ
3 webRTC.io
http://www.moongift.jp/2012/10/20121019-2/
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿