【うぇぶあーるてぃーしー】

WebRTC とは?

最終更新:
💡 ブラウザだけでビデオ通話ができる「裏方の立役者」

WebRTCは、ブラウザなどで音声・映像・データのリアルタイム通信を行う技術です。接続情報の交換、ICE・STUN・TURN、直接接続と中継の違いを説明します。

📌 このページのポイント
「つなぐ情報」と「流れる通信」シグナリング接続情報を交換ブラウザA音声・映像等ブラウザB音声・映像等直接接続TURN通信を中継ICEが、使える接続候補を試す
直接接続と中継は経路の例です。シグナリングは別途用意し、ICEで接続候補を確認します。
ひよこ ひよこ
ブラウザだけで、ビデオ通話を作れる?
ペンギン先生 ペンギン先生
ブラウザのAPIで音声・映像を送受信したり、RTCDataChannelでデータを交換したりできるよ。ただしアプリの画面、参加者の管理、接続情報を届ける仕組みなどは別に作る。WebRTCという部品が、そのまま完成した会議サービスではないんだ。
ひよこ ひよこ
接続情報を届けるって、何をするの?
ペンギン先生 ペンギン先生
通信の条件や接続候補を相手へ知らせるよ。これをシグナリングと呼び、HTTPのAPIやWebSocketなどで実装できる。WebRTCは、そのやり方をひとつに決めていないんだ。
ひよこ ひよこ
相手と直接つながるの?
ペンギン先生 ペンギン先生
直接接続できる場合もあるけれど、ネットワークの条件によっては中継が必要だよ。ICEが接続候補を試し、STUNで外側から見えるアドレスなどを調べたり、TURNで通信を中継したりする。STUNだけで必ず接続できるわけではないね。
ひよこ ひよこ
TURNとシグナリングは、同じサーバー?
ペンギン先生 ペンギン先生
役割が違うよ。シグナリングは、どのようにつなぐかという情報を交換する。TURNは、実際に流れる通信を中継する。直接通信できる場合にも情報交換は必要なので、「サーバーは一切要らない」とは考えないでね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「WebRTC」って出てきたら「ブラウザなどで、音声・映像・データをリアルタイムに通信する技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「Web Real-Time Communication」 = Webのリアルタイム通信
💬 RTCはReal-Time Communicationの略。音声・映像だけでなく、データ通信にも使うよ。

参考資料

← 用語集にもどる