【本書で得られる成果物】
本書を初めから最後まで一通り行っていただくと、
最後にはサンプルとして動作する、
多人数ビデオ通話&テキストチャットアプリが完成します。
また、そのアプリを外部の人に試してもらえる環境構築方法も掲載しております。
※本書で作成するWebアプリケーションの作成までは、全て無料の範囲で行っていただけます。
【使用技術1:WebRTC、SkyWay】
プラグインを追加することなくWebブラウザ上でリアルタイムコミュニケーションを可能にするオープンフレームワーク、
「WebRTC(Web Real-Time Communications)」を使用した、
低遅延多人数ビデオ通話&テキストチャットサービスなどを作成することができます。
その際、より高速にWebRTCアプリを開発することを重視するためにNTTコミュニケーションズ社が提供している便利なツール「SkyWay」を使用する手順も解説します。
【 使用 技術2:ngrok】
昨今の実務におけるスピード重視のプロトタイプ開発の潮流を考慮し、
クラウドサービスなどへデプロイする前段階の手軽な方法として
ローカルサーバーで動いているアプリを外部の人へ公開ができるツールであるngrokの使用方法も解説します。
これはWebRTCだけでなく、Djangoなどで作成したWebアプリでも簡単に公開が可能。
【 使用 技術3:HEROKU】
Herokuは有名なPaaSの一つです。
「PaaS」は「Platform as a Service(プラットフォーム アズ ア サービス)」の略で、
Webサービスを公開するために必要なものを全て、予め用意してくれるというサービスです。
自身で開発したアプリをサーバー周りのことを詳しく知らなくても容易に動かせるようになります。
はじめに導入として「WebRTCとは?」という話から始めても良いのですが、
著者の考えとしては
"とにかく何も考えずまずは動いているものを見る"
→
"それがどうやって動いているか?などを適宜勉強していく"
これが圧倒的に効率的なスキルアップ方法だと思っています。
勉強の目標点が定まるためです。
目標点が定まると、そこへたどり着くために何が足りないのか?
という、”穴埋め型”の勉強スタイルになるため、常に全体感を把握でき、
結果的に新たな知識に対する吸収率が上がると思っています。
実際の動かし方を学んだ後に、各技術に対する仕組みや原理などを解説します。
時間のない皆様にとって、長々と前置きを行うことは賢明ではないため、
早速次の章から、これから作るアプリのサンプルを実際に動かしてみましょう。
WebRTCとは、Web Real - Time - Communicationの略。
HTML5で新しく策定されたAPIの規格で、P2P通信によりブラウザ間のリアルタイムコミュニケーションを実現するための仕組みです。
プラグインのインストールやネイティブアプリのダウンロードをせずとも、ウェブブラウザ間でボイスチャットやビデオチャット、ファイル共有などが可能になります。
WebSocketでは必ずWebブラウザとサーバー間で通信を行います。チャットなどでユーザー同士がデータを送り合うアプリでも、必ずサーバーを介して通信をします。
一方でWebRTCではサーバーを介さずにユーザー間で直接やり取り(P2P)を行うため、より高速な通信が実現できます。
その際、WebRTCではプロトコルにUDPを使用しています。
次項でこのUDPとTCPについて触れていきましょう。