PR:この記事にはアフィリエイトリンクが含まれます。
WebRTCの本おすすめを探すと、JavaScriptのサンプルを追う入門書からP2P通信やシグナリングの仕組みを掘り下げる本まで並んでいます。どこが違うのか、少し見分けづらいですよね。
扱う技術と刊行時期に沿って英語の紙版4冊を紹介します。知りたい実装範囲と照らせば、今の自分に近い本が見えてきます。
早見表
| 書名 | 刊行・頁 | 主な読みどころ |
|---|---|---|
Programming WebRTC: Build Real-Time Streaming Applications for the Web | 2024年・266ページ | JavaScript、シグナリング、RTCDataChannel、本番設定 |
Learning WebRTC: Develop interactive real-time communication applications with WebRTC | 2015年・186ページ | カメラ・マイク、通話、シグナリングサーバー |
WebRTC Cookbook: Get to grips with advanced real-time communication applications and services on WebRTC with practical, hands-on recipes | 2015年・230ページ | STUN・TURN、サーバー例、既存サービス連携 |
WebRTC Integrator’s Guide: Successfully build your very own scalable WebRTC infrastructure quickly and efficiently | 2014年・382ページ | WebSocket、SIP、既存通信網との統合 |
4冊とも英語の紙版です。刊行年は2014年から2024年まで離れています。古い本からも基礎概念や構成例を学べますが、ブラウザーAPIの細部は現在の仕様と照らして確認しましょう。
紙版の価格は販売店や在庫、時期によって変わります。購入時に表示される金額を、その時点での目安にしてください。
WebRTCの全体像
WebRTCはブラウザーやアプリの間で音声・映像・データをリアルタイムに送る技術です。動画を画面に表示して終わりではありません。相手を見つけ、接続経路を調整し、通信を維持する処理も関わります。
ビデオ通話を例にすると、JavaScriptでカメラを開き、RTCPeerConnectionに映像トラックを渡します。その後、相手との接続を整え、受け取ったストリームを画面に表示。APIを呼ぶ順序が実装の基本になります。
最初の壁になりやすいのは、接続に必要な情報を相手へ渡す処理と、NATやファイアウォールを越える経路づくりです。順序立てて学べる本なら、動くデモの先まで見通せますね。
音声・映像に加えてRTCDataChannelでは、チャット文やファイルなどのデータも送れます。データチャネルまで扱う本なら、ブラウザー間の共同編集やファイル共有も試作の題材にできます。
P2Pと信号交換
まず押さえたいのがシグナリングの役割です。これは接続開始に必要な情報を相手へ渡す仕組み。WebRTC自体は方式を定めておらず、WebSocketなどでoffer、answer、ICE candidateを交換し、双方のRTCPeerConnectionを接続へ導きます。
offerとanswerはSDPを使い、メディア形式や接続条件をすり合わせます。ICE candidateは通信できそうなネットワーク経路の候補です。候補が見つかるたびに送るTrickle ICEを知ると、接続成立までの流れも追いやすくなります。
シグナリングサーバーが通常扱うのは接続に必要な情報です。映像そのものは中継しません。ただ、STUNで経路を見つけられない環境ではTURNが通信を中継します。P2Pでもサーバーを使うことがあります。
参加人数が増えた場合も考えておきましょう。メッシュ方式では各端末の送信負荷が増すため、多人数会議ではSFUを置く構成も検討できます。本が扱う構成を読むと、想定する規模感が見えてきます。
TypeScriptの視点
紹介した4冊にTypeScriptを主題にした本はありません。ただ、ブラウザーAPIは共通です。まずJavaScriptで接続手順を理解し、その後に型を付ける進め方なら無理がありません。
TypeScriptではRTCPeerConnectionやMediaStreamの型を利用でき、関数の引数や状態を明確にできます。RTCSessionDescriptionInitやRTCIceCandidateInitなどのDOM型を知っておくと、シグナリングのデータ構造もコード上で追いやすくなります。
ここは勘違いしやすい点です。受信したJSONに型を宣言しても、実行時に中身が検証されるわけではありません。外部から届くメッセージはパースして確かめ、想定外の内容を適切に扱いましょう。
Perfect Negotiationは両側が同時に発信した際のoffer競合を扱う考え方です。状態遷移を型だけに任せず、メッセージがどんな順序で行き来するかも確認したいところ。JavaScriptからTypeScriptへ進む際にも役立ちます。
まず読む一冊
『Programming WebRTC』は2024年6月刊で、全266ページです。著者のKarl Stolleyは初級から中級向けに、ブラウザーのHTML・CSS・JavaScriptとNode.jsを使う開発環境から解説します。
RTCPeerConnection、シグナリングチャネル、RTCDataChannel、複数ピア通信を扱い、Perfect Negotiationも紹介します。接続後の交渉や再交渉まで視野に入れたい人に合う一冊です。
サーバー設定やNginx、独自STUN・TURNの設定にも触れています。ブラウザーでのデモの先に、ネットワーク越しの公開設定まで学びたい人には、この本がおすすめです。
英語の技術書なので、API名を追いながら読む負担はあります。それでもJavaScriptやNode.jsの経験があり、コードを手元で試せる人なら、4冊の中で最初に検討しやすい一冊です。

Programming WebRTC: Build Real-Time Streaming Applications for the Web
The Pragmatic Bookshelf
Amazonで見る基礎から広げる
『Learning WebRTC』は2015年6月刊で、186ページです。HTML5とJavaScriptを知るWeb開発者向けに、カメラ・マイクの取得からブラウザー間の音声・映像通話まで扱います。
シグナリングサーバーを一から作る章があり、offerとanswer交換の役割をアプリ側から理解できます。RTCDataChannelのデータ送信やファイル共有も扱います。
複数ユーザー接続ではメッシュネットワークも登場します。二者間の接続からデータ通信、人数の拡張へ進みたい人におすすめです。WebRTCの基礎を順に学ぶ入口になりますね。
刊行から年数が経っています。掲載コードをそのまま最新ブラウザーで動かすより、現行仕様やAPIと照らして読むと、基本概念を活用しやすくなります。

Learning WebRTC: Develop interactive real-time communication applications with WebRTC
Packt Publishing
Amazonで見る実装レシピを試す
2015年2月刊、230ページの『WebRTC Cookbook』は、JavaScriptとWebRTCの基礎を持つ開発者向けです。課題別のレシピ形式で、手順を追って実装を学べます。
JavaまたはErlangでシグナリングサーバーを作る例があり、サーバー実装まで扱います。Peer ConnectionsとRTCDataChannelを使ったチャットも取り上げます。
STUN・TURNの設定に加えてAsteriskやFreeSWITCHとの連携、セキュリティ、トラブルシューティングも載っています。接続を動かした後、ネットワークや既存システムとの接点を知りたい人におすすめです。
本書は応用課題を個別に追う構成です。シグナリングやICEの役割を先に押さえると、必要な例を自分の構成に照らせます。

WebRTC Cookbook: Get to grips with advanced real-time communication applications and services on WebRTC with practical, hands-on recipes
Packt Publishing
Amazonで見る通信基盤まで見る
『WebRTC Integrator’s Guide』は2014年10月刊で、全382ページです。4冊の中でもインフラ寄りの内容で、基本的な通信基盤とプログラミングの知識を持つ開発者が対象です。
getUserMedia、RTCPeerConnection、DataChannelといったブラウザーAPIを扱います。シグナリングではWebSocketサーバーを使う方式とSIPを使う方式を取り上げ、通信方式の違いも見渡せます。
SIP、IMS、PSTN、GSMなど既存通信網との統合まで視野に入れています。既存通信網との接続を含む設計の背景を調べる人にも参考になります。
本書はWebRTCクライアントから通信基盤の構成まで扱います。ネットワーク用語に慣れていない場合は、基本を先に押さえると読み進めやすいでしょう。

WebRTC Integrator’s Guide: Successfully build your very own scalable WebRTC infrastructure quickly and efficiently
Packt Publishing
Amazonで見る現場の論点
書籍のAPI名やコード例が現在のブラウザーでそのまま動くとは限りません。特に2014〜2015年刊の本は、掲載コードの細部を現行仕様と照合しながら基礎概念を読むと、活用しやすくなります。
社内ネットワークで通話できても、携帯回線や企業VPNではつながらないことがあります。接続に失敗したらブラウザーのログを見てください。ICE candidateやSTUNの応答、TURN経由かどうかも確認すると原因を絞れます。
カメラの利用許可やHTTPS、ネットワーク制限などWebRTC以外の条件で試作が止まることもあります。通信の問題か画面上の権限や設定の問題かを別々に確認すると、原因調査が進みます。
シグナリングのメッセージ形式はアプリ側で設計します。セッションIDや参加者、offer・answer・candidateの扱いに加え、再接続や退出時に古い状態を片付ける処理も必要です。こうした整理がメッセージの競合を減らします。
メディア通信には暗号化が組み込まれています。サービス全体の安全を保つには、シグナリングの認証やルーム参加権限も設計してください。
結論
JavaScriptでWebRTCの基本から本番設定まで学ぶなら、2024年刊の『Programming WebRTC』がおすすめです。シグナリング、データチャネル、Nginx、STUN・TURNまで一冊で範囲を広げられます。
カメラ・マイクから段階的に理解したい人には『Learning WebRTC』。基本を押さえた後にサーバー実装やNAT越えを掘り下げるなら『WebRTC Cookbook』、既存の電話網やSIPとの連携を知りたいなら『WebRTC Integrator’s Guide』が候補です。
TypeScriptを使う場合も、まず本のJavaScript例で接続とシグナリングの流れを理解し、型と実行時検証を加えると進めやすくなります。紙版の販売価格は時期で変わるため、購入時の価格と必要な技術範囲をあわせて確認してください。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。

