わか(った気にな)った WebRTC についてまとめておく。
WebRTC とは
- P2P できる
- 低遅延
- 他にも色々
対応していないブラウザ
- Safari
- (Internet Explorer)
雰囲気
- WebRTC
- NAT 越え
- シグナリング
-
ICE
- STUN
- TURN
-
ICE
- (中央サーバでデータを処理するパターン)
- SFU
- MCU
その他単語
(特にこの記事内で何も話していない。)
* SDP
* ORTC
シグナリング
P2P で通信するための経路情報等を調整する。
仕様としてはやり方は決まっていない。
ICE (STUN, TURN)
NAT 越えをするための方法。
基本的には ICE と言う技術を使う。
ICE: Interactive Connectivity Establishment
ICE の中に STUN と TURN がある。
-
STUN
- 最初だけ IP アドレスやポートを確認するために使うもの
- 基本的な通信はクライアント間で直接通信
-
TURN
- 常に通信をパススルーする
- STUN で通信できない場合に使う
- (暗号化されたまま通過するので通信の中身を見られることはない)
中央サーバでデータを処理するパターン (SFU, MCU)
中央サーバでデータの中身を見て処理するケース。
「同一コンテンツ(サービス内コンテンツ)を扱うクライアント」数が増えた時とかに使う。
-
SFU
- サーバが受け取ったストリームをそのまま必要なクライアントに送る
- 各クライアントの送信データ量が減る(受信データ量は減らない)
-
MCU
- サーバが受け取った複数のストリームを加工したりしてまとめた状態でクライアントに送る
- 各クライアントの送受信データ量が減る
- (SFU と比べて)サーバの負荷が大きい
(※わか(った気にな)る WebRTC の図とか見たらわかりやすいので見た方が良いと思う。)
感想
「わか「った気にな)る WebRTC」の本がわかりやすい
話の流れが(オマージュさせてもらっているが)とてもわかりやすかった。
ただ、実際に WebRTC をガッツリ使うにはさすがに別で調べる必要はある。
とりあえず使うにはサンプルコードがあってとても助かる。