概要
JavaScript SDK について
JavaScript SDK は Web アプリケーションで SkyWay を利用するための SDK です。
この SDK は複数のライブラリで構成されています。
現在提供されているライブラリは以下の通りです。
Room
- SkyWay の全機能を利用できるライブラリ
- P2P Room と SFU Room の 2 種類の Room があり、どちらかを選択して利用できる
- P2P Room は少人数向け
- 上限人数に制限はありませんが、ユーザーが快適に通話できる人数は 4 人までです
- SFU Room は多人数向け
- SFU サーバーを経由してメディア通信を行います
- P2P Room は少人数向け
Token
- 認証認可のためのトークンを生成する際に利用できるユーティリティライブラリ
- シークレットキーを利用するため、フロントエンドで利用する際には注意してください
ライブラリの仕様
SkyWay を利用する上で理解する必要のある基本的な仕様について説明します。
Room
通話を行うグループの単位であり、ユーザーは共通の Room に参加したユーザー同士で通話を行います。 Room に参加しているユーザーのことを Member と呼びます。
Stream
Room 上で送受信できるメディアのことを Stream といいます。以下の 3 種類の Stream を利用できます。
- AudioStream
- ユーザーのマイク音声など
- VideoStream
- ユーザーのカメラ映像など
- DataStream
- 任意のメッセージ
- SFU-Room では利用できません
Publish
Member が Stream を Room に公開することを Publish といいます。
Stream を Publish すると Room 上に Stream に対応する Publication というリソースが作成されます。
Subscribe
Member が Room 上の Publication を受信することを Subscribe といいます。
Subscribe をすると Room 上に Subscription というリソースが作成されます。
Publication を Subscribe した Member は Subscription を通じて Stream にアクセスし映像や音声を受信できます。
SkyWay Auth Token
SkyWay Auth Token は、SkyWay を利用するために必要な JWT(JSON Web Token)形式のトークンです。
ユーザー毎に権限を細かく設定することでき、例えば Room ごとの入室を特定ユーザーに制限する、といったことができます。
SkyWay Auth Token を利用するためには、これを払い出すアプリケーションサーバーを構築する必要があります。SkyWay SDK を利用したクライアントアプリは、アプリケーションサーバーから SkyWay Auth Token を取得し、これを用いて SkyWay の各種機能を利用します。
なお、サーバーを構築せずにフロントエンドで SkyWay Auth Token を生成した場合、シークレットキーをエンドユーザーが取得できるため、権限の制限が機能せず注意する必要があります。
GitHubで公開しているSkyWay Auth Tokenを生成・取得するサンプルコードは SkyWay Auth Token 払い出しサーバーのモックサーバーとしても活用できるため、開発時はこちらの利用もご検討ください。
SDK のインストール方法
基本的には NPM パッケージとして提供しています。
なお、Room ライブラリはプロトタイピングや記事の執筆、学習など、手軽に試していただくために CDN にホストしたライブラリを用意していますが、SkyWay としてお客様の環境での CDN 経由での利用はおすすめしておりません。 CDN にホストされたライブラリは SkyWay の SDK バージョンアップに伴い自動的に更新されるため、お客様が意図しないところで、商用環境に更新版がリリースされてしまう可能性があるためです。 大変お手数ではございますが、NPM 経由での利用をお願い致します。
NPM を利用する場合
npm がインストールされている環境下で以下のコマンドを実行します。
Room ライブラリ
npm install @skyway-sdk/room
その他のプラグインやユーティリティライブラリ
npm install @skyway-sdk/token
CDN を利用する場合
CDN を介して利用できるのは Room ライブラリのみとなっています。それ以外のライブラリは NPM を利用ください。 なお、CDN にホストされているライブラリはアップデートに伴い自動的に最新版に更新されるため、商用環境での利用はおすすめしておりません。
以下のスクリプト要素を HTML に追加します。
Room ライブラリ
<script src="https://cdn.jsdelivr.net/npm/@skyway-sdk/room/dist/skyway_room-latest.js"></script>
モジュールはグローバル変数の skyway_room
に格納されるので以下のようにモジュールを取得できます。
const { SkyWayAuthToken, SkyWayContext, SkyWayStreamFactory, SkyWayRoom } = skyway_room;
リリース
NPM
- Room ライブラリ: https://www.npmjs.com/package/@skyway-sdk/room