無料でオンライン会議システムを立ち上げてみる
SkyWayとは
話題のオンライン会議(飲み会?)のシステムを自前で作れないかと調べてみると、SkyWayというサービスがあったので試してみます。
SkyWayは、NTT Communicationsが提供するサービスで、「Webでリアルタイムコミュニケーションを実現する標準技術、WebRTC(Web Real Time Communication)を、かんたんにアプリに導入できるSDK&API」とのこと。
Community Editionでは、接続回数などの制限内までは無料で利用することができます。
今回は、JavaScriptのサンプルコードを、こちらも無料で利用できるGitHubのホスティングサービス GitHub Pagesで自分のプロジェクトのWebサイトとして公開する方法について説明します。
開発環境
PC:MacBook
OS:macOS Catalina バージョン 10.15.3
【事前準備】テキストエディタをインストール
すでにテキストエディタをインストール済みであれば、こちら手順はスキップしても問題ありません。
今回はAPIキーの編集くらいにしか使用しないのでプリインストールされている標準のテキストエディタでも問題ないかもしれません。
ここではMicrosoftのテキストエディタVisual Studio Codeをインストールしてみます。
インストール方法については割愛しますが、下記の記事などを参考にしてみて下さい。
MacOSでVisual Studio Codeをインストールする手順
ターミナルからVisual Studio Codeを起動する方法【公式の方法】
GitHubのアカウント登録
GitHubのアカウントがない場合には、こちらからアカウントを登録して下さい。
GitHubの登録方法や使い方が分からない場合には、下記の記事などを参考にしてみて下さい。
今さら聞けない!GitHubの使い方【超初心者向け】
SSH接続の設定
git cloneコマンドでサンプルコードなどを取得するためにSSH接続の設定を行います。
私が参考にした記事です。
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
SkyWayの開発者登録
SkyWayの開発者登録をこちらから行います。
SkyWayにアプリケーションを追加
ダッシュボードへログインし、以下を行います。
公開用のリモートリポジトリを作成
GitHubにサインインして公開用の新規リポジトリを作成します。
今回は、skyway
というリポジトリ名にします。
無料プランでホスティングサービスを利用する場合には、Publicを選択して下さい。
リモートリポジトリをローカルにクローン
コンソールから下記のコマンドを実行して、リモートリポジトリをローカルにクローンします。空のリポジトリが複製されたというような警告が出ますが、とりあえず無視で。
これでmyrepo
というフォルダが生成されるはずです。
~ % git clone [email protected]:username/skyway.git ./myrepo
Cloning into 'skyway'...
warning: You appear to have cloned an empty repository.
サンプルコードをローカルのリポジトリにコピー
次に、SkyWayのskyway-js-sdkをクローンします。
下記のコマンドを実行するとskyway-js-sdk
というフォルダが生成されます。
この中のexamples
というフォルダがサンプルコードです。
このフォルダを先ほどクローンした自分のローカルリポジトリにコピーします。
~ % git clone [email protected]:skyway/skyway-js-sdk.git ./skyway-js-sdk
Cloning into 'skyway-js-sdk'...
remote: Enumerating objects: 7522, done.
remote: Total 7522 (delta 0), reused 0 (delta 0), pack-reused 7522
Receiving objects: 100% (7522/7522), 2.78 MiB | 2.62 MiB/s, done.
Resolving deltas: 100% (4949/4949), done.
~ % cp -rf ./skyway-js-sdk/examples/. ./myrepo
_sharedでは相対パスのURLとして指定できないようなので、とりあえず先頭のアンダースコアを削除してsharedにリネームします。
公式のWebサイト(https://example.webrtc.ecl.ntt.com)では_shared/key.jsや_shared/style.cssで参照できているようですが。。。
~ % cd myrepo
myrepo % mv _shared shared
最終的にローカルのファイルは、下記のようなフォルダ構成になります。
- myrepo
- skyway-js-sdk/examplesをコピーしたフォルダ
- skyway-js-sdk
- SkyWayのリポジトリをクローンしたフォルダ
── myrepo ── p2p-data
| ├─ p2p-media
| ├─ room
| └─ shared
└- skyway-js-sdk ── examples ── _shared
├─ p2p-data
├─ p2p-media
└─ room
index.htmlの_sharedをsharedに変更
p2p-data/index.html、p2p-media/index.html、room/index.htmlで参照している_sharedのパスをsharedに変更します。
前述したVisual Studio Codeをインストールしてコンソールからコマンドを起動する方法を有効している場合には、コンソールでcode ファイル名
と入力するとVisual Studio Codeが起動してファイルを編集することができます。(もちろん、他のテキストエディタを使って編集しても構いません。)
myrepo % code p2p-data/index.html
myrepo % code p2p-media/index.html
myrepo % code room/index.html
下記の2箇所の_shared
をshared
に変更します。
<link rel="stylesheet" href="../_shared/style.css">
<script src="../_shared/key.js"></script>
key.jsにSkyWayのAPIキーをコピー
SkyWayのダッシュボードからAPIキーをコピーします。
コンソールまたはFinderからshared/key.jsを開いて、<YOUR_KEY_HERE>
をコピーしたAPIキーに置き換えて下さい。
myrepo % code shared/key.js
window.__SKYWAY_KEY__ = '<YOUR_KEY_HERE>';
公開用のリモートリポジトリにプッシュ
下記の手順でmyrepo
以下のファイルをすべてリモートリポジトリにプッシュします。
myrepo % git add --all
myrepo % git commit -m "first commit"
[master (root-commit) cd4b8b0] first commit
11 files changed, 490 insertions(+)
create mode 100644 p2p-data/README.md
create mode 100644 p2p-data/index.html
create mode 100644 p2p-data/script.js
create mode 100644 p2p-media/README.md
create mode 100644 p2p-media/index.html
create mode 100644 p2p-media/script.js
create mode 100644 room/README.md
create mode 100644 room/index.html
create mode 100644 room/script.js
create mode 100644 shared/key.js
create mode 100644 shared/style.css
myrepo % git push
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 4 threads
Compressing objects: 100% (17/17), done.
Writing objects: 100% (17/17), 4.39 KiB | 898.00 KiB/s, done.
Total 17 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), done.
To github.com:username/skyway.git
* [new branch] master -> master
ここまででGitHubのリモートリポジトリには、下記のようにサンプルコードがアップロードされているはずです。
GitHub PagesでWebサイトを公開
GitHubのリモートリポジトリのSettings
を選択して、下にスクロールするとGitHub Pages
という項目があります。
ここで、Source
をNone
からmaster branch
に変更すると、先ほどプッシュしたファイルがhttps://username.github.io/skyway/
として公開されます。
(ただし、https://username.github.io/skyway/
の直下には何もファイルを置いてないので、アクセスしてもFile not found
と表示されるだけです。)
実際に立ち上げてみる
https://username.github.io/skyway/
以下のURLは、フォルダ名がそのままURLになります。
- 1対1のビデオ通話
https://username.github.io/skyway/p2p-media/
- 1対1のテキストチャット
https://username.github.io/skyway/p2p-data/
- 多人数のビデオ会議 / テキストチャット
https://username.github.io/skyway/room/
「room」に自分のMacとiPhoneでつなげたら、一応こんな感じで繋がりました!
まとめ
SkyWayのサンプルコードを使って全くプログラミングすることなく、ビデオ会議システムがそれっぽく動くところまで確認できました。
無料で試せるところもいい感じですね。
あとは、必要に応じてフロントエンド側を開発していけば、独自にカスタマイズしたサービスが簡単に構築できるはずです。
(というか、私もWebアプリのプログラミングは初心者なので、動かしながら勉強していこうかと。)
ぜひ皆さんも試してみて下さい。
リンク
中の人も色々と記事を書かれているようです。
https://qiita.com/tags/skyway?page=1
Author And Source
この問題について(無料でオンライン会議システムを立ち上げてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/vyeah321/items/4e52436bbd5886364d9a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .