ここでのSkyWayとはNTTコミュニケーションズ株式会社提供のリアルタイムコミュニケーションのためのプラットフォームのことです。ベースになっている技術要素がWebRTC(Web Real-Time Communications)です。SkyWayを利用するとこのWebRTCを深く意識する必要がなく比較的容易にリアルタイムコミュニケーションのサービスが構築出来るということです。Community Editionであれば今現在のところ無料で利用出来ます。
このSkyWayをサービス、アプリの開発エンジニアの一人として使ってみます。
WebRTCとSkyWayの概要
上記のリアルタイムコミュニケーションとは具体的には以下のようなことです。
・PCやスマホ等のカメラやマイクからのストリームデータの取り込み
・取り込んだストリームデータのP2P通信
・テキストデータやバイナリデータのP2P通信
P2P通信とはpeer-to-peerのことで、1対1からn対nまでの通信が出来ます。
WebRTCの技術を利用すればこれらのリアルタイムコミュニケーションが(WebRTC対応済みの)ブラウザのみで出来ます。ブラウザに別途何かを機能追加するとか他の技術要素が必須でそれがないと実現出来ないということはないです。
但し、WebRTCを利用してP2P通信を行うためには、お互いの情報を交換するためのシグナリングと呼ばれる処理が必要です。そのシグナリング関連の処理をSkyWayに任せることによってサービス、アプリケーション開発に専念出来ます。
以下は1対1のリアルタイムコミュニケーションの簡単な図です。
(※SkyWayのJavaScript JDKチュートリアルにあった図を別途自分で書きました。)
コミュニケーションとしては相手と直接コミュニケーションが取れているという感覚になります。また場所(企業内、自宅、屋外)や特定のデバイス(要するにIPアドレス)をあまり意識することなく利用出来ます。
実際にまずはPC1台で使ってみる
ありがたいことに今現在以下のチュートリアルページで実際にデモが試せます。(「完成したアプリのデモを試すことができます。」のリンクからです。)
JavaScript JDKチュートリアル
とりあえずPC1台(Windows10)でやってみます。
USBカメラを接続してWindows10のカメラアプリで接続を確認します。PCにカメラが付属していればもちろんそれでもいいです。
ブラウザ(私の場合はFireFoxです。)で上記のチュートリアルページのデモアプリのページを開きます。そうすると以下のようにカメラとマイクの許可の確認が出ます。これが表示されない場合はカメラとの接続または何かのセキュリティーに問題があると思います。
許可をすると下の方に自分のカメラの画面が表示されます。
ここで別のブラウザを起動して同じページを開きます。同様にカメラとマイクを許可します。もう一方のブラウザと同じ画面になると思います。
どちらのブラウザでもいいので以下のMake a callのボックスに相手側のブラウザのIDを入力してCallします。1台のPCで動作させているメリットですが、IDをコピーペーストで入力することが出来ます。
そうすると、実際には同じ画面ばかりですが接続されたことが確認出来ます。
PCとスマホで使ってみる
これではあまり双方向のコミュニケーションが実感出来ないのでPCとスマホ(もちろんカメラ付きです。)で接続してみます。スマホのブラウザ(私の環境ではAndroidでGoogle Chromeです)でデモページを開きます。
PCの場合と同様にカメラとマイクの接続の許可が確認されるので許可します。そこで表示されたIDをPC側で入力します。ここではもちろん一文字ずつ手入力です。
IDが正確でネット接続に問題がなければPC側からは以下のように見えます。
上の方の画面が相手側のスマホの映像です。縦にしていると縦方向で見えました。スマホ側でもPCカメラの映像が確認出来ました。
職場のPCと自分のスマホという全く別のネットワークでの直接のコミュニケーションが確認出来ました。
テキストのデータ通信
テキストでのデータ通信は今現在以下のページに実際に試せるページがあります。
https://github.com/skyway/skyway-js-sdk/tree/master/examples/p2p-data
接続方法はストリームの場合と同じで相手のIDを指定します。接続完了後にテキストの送受信が可能になります。
まとめ的に
SkyWayを利用すればWebRTC対応のブラウザでこのようなリアルタイムコミュニケーションが可能になるということです。またSkyWayを利用すればこのようなコミュニケーションのアプリ、サービスの開発に集中出来るということです。サイトでは事例が紹介されているので参考になるかと思います。
次回はこのSkyWayのJavaScriptでの開発について書きます。