チュートリアル¶
概要¶
このチュートリアルでは、Sora に組み込まれている開発者ツールを動かして、ひととおり使ってみるところまでを説明します。
チュートリアルの注意点¶
- このチュートリアルでは、リバースプロキシとしての nginx や HTTPS の知識を必要とします
- Sora は TCP と UDP の両方を利用します
- TCP はデフォルトであれば 3000 番と 5000 番を利用します
- UDP はデフォルトであればエフェメラルポートの範囲を利用します
- Sora の開発者ツールは Sora に組み込まれているものを利用して下さい
- Sora の開発者ツールは HTTPS 非対応のため、nginx をリバースプロキシとして利用して、TLS 終端を行ってから Sora に繋ぐ必要があります
- Sora のシグナリングは WebSocket over TLS 非対応のため、nginx をリバースプロキシとして利用して、 TLS 終端を行い Sora のシグナリングへ繋ぐ必要があります
Sora の展開¶
tar.gz で圧縮されていますので、展開して下さい。
$ tar xfz sora-<version>-<os>.tar.gz
設定ファイル¶
設定ファイルは Sora を展開した sora-<version>/etc/sora.conf にあります。まずは開発者ツールを動作させるまでの最低限の設定を行います。
# はコメントになっている部分ですので、設定する項目がコメントになっている場合は # を削除して設定項目を有効にしてください。
- ライセンスファイルの指定
- ライセンスファイルを etc/ において、cp コマンドを利用して
license.jsonに変更して下さい。
- ライセンスファイルを etc/ において、cp コマンドを利用して
- 開発者ツールの有効化
- Sora には簡単に検証してもらうための開発者ツールを組み込んでいます。
devtools項目の#を削除して設定を有効にし、 加えて、設定値に true を指定して Sora に組み込まれている開発者ツールを有効化してください。
- Sora には簡単に検証してもらうための開発者ツールを組み込んでいます。
## ライセンスファイルを指定してください
## この設定はオプションで、デフォルトは "etc/license.json" です
# license_file = etc/license.json
## 開発者ツールを有効にするかどうかを指定してください
## オプションでデフォルト false です
devtools = true
他の設定はここでは不要です。
起動¶
設定が終わったらサーバーを起動します。
$ sora-<version>/bin/sora daemon
停止¶
停止したい場合は以下で可能です
$ sora-<version>/bin/sora stop
シグナリングへの HTTPS の適用¶
HTTPS (WebSocket over TLS を含む) の適用は必ず行ってください。HTTPS への接続以外はサポート対象外となります
ブラウザで WebRTC の機能の一つである getUserMedia を利用する場合は HTTPS が必須となります。 ただし、Sora 自体は HTTPS 非対応のため、Sora の前段にリバースプロキシとして nginx を設置して TLS 終端を行ってください。
nginx の location ディレクティブの設定については nginx を参考にして設定をお願いします。
証明書については Let's Encrypt - Free SSL/TLS Certificates の利用をおすすめします。
リバースプロキシとしての nginx の役割:
// 開発者ツールの静的ファイルの場合
クライアント -> <HTTPS:443> -> nginx -> <HTTP:5000> -> Sora
// シグナリングの場合
クライアント -> <WebSocket over TLS:443> -> nginx -> <WebSocket:5000> -> Sora
開発者ツールを利用してみる¶
Sora に組み込まれている開発者ツールの使い方を説明します。 開発者ツールでは Sora の持っている一通りの配信機能を試すことができます。
ブラウザで https://<設定したドメイン>/ にアクセスして以下のような画面が表示されれば成功です。
開発者ツールが動作するブラウザ一覧¶
以下の最新のブラウザで動作します。
- Google Chrome
- Mozilla Firefox
- Apple Safari
- Microsoft Edge
ただし一部の機能は特定のブラウザでのみ動作します。
動作確認¶
ビデオ会議システムなどで利用されるような双方向での配信機能です。 受信だけ、送信だけでの利用も可能です。
マルチストリーム送受信 を開き connect を押して、
その後、別のブラウザやタブで同じ URL を開いて、 connect を押して下さい。
追加でタブを開いて connect していけば参加者を増やせます。
開発ツールでは気軽にいろいろな設定を試せるようになっています。触ってみてください。
次のステップ¶
sora.confのipv4_addressにサーバーの IP アドレスを指定してください
本番稼働に向けて をお読みください。
また、 Sora はいろいろな機能を持っていますので、一通りドキュメントをご確認下さい。
トラブルシューティング¶
タイムアウトが起きてつながらない場合¶
Sora が利用する UDP のポートの範囲は通常 32768 から 60999 です。この範囲の通信を許可にしてみてください。
それでもうまく繫がらない場合¶
サーバーの IPv4 アドレスを ipv4_address に指定して、 ipv6 を false にしてみてください。
## ライセンスファイルを指定してください
## この設定はオプションで、デフォルトは "etc/license.json" です
# license_file = etc/license.json
## サーバーで利用する IPv4 アドレスを指定してください
## 指定が無い場合は、自動で見つけたアドレスを利用します
ipv4_address = 192.0.2.10
## 開発者ツールを有効にするかどうかを指定してください
## オプションでデフォルト false です
devtools = true
よくある問題¶
ここでは利用しているドメインを仮に example.com としています。
https://example.com/にアクセスできない- nginx の設定が間違っている可能性があります。nginx の設定を見直して下さい
https://example.com/にアクセスしても 404 になる- Sora の組み込みの開発者ツールが有効になっていない可能性があります
sora.confの設定で開発者ツールが有効になっているか確認して下さいhttp://example.com:5000/にアクセスして開発者ツールが有効になっているかを確認して下さい
- Sora が利用するポートを他のプロセスが利用していないかを確認してください
- Sora が利用したいポートを他のプロセスが既に利用しているために、Sora が起動していない可能性があります
- Sora の組み込みの開発者ツールが有効になっていない可能性があります
それでも繋がらない場合¶
お問い合わせ前に以下を確認してください
- チュートリアル以外のことはやっていないかどうかを確認して下さい
- ファイアウォールの設定を全て無効にして確認してください
- IPv6 アドレスを無効にして確認してください
- Sora では基本的にロードバランサーを利用することはできませんので、ロードバランサーなしで確認してください
全てを確認しても繋がらない場合はお問い合わせください。
その際に以下の情報を 必ず お送りください。
- どんな環境でチュートリアルを実行しているか
- Sora のバージョン
- Sora の設定ファイルである
sora.conf - log ディレクトリ以下すべてを tar.gz にて圧縮してお送りください
- 容量が 1 メガバイトを超える場合は事前にご連絡ください。アップローダーをご提供します
- 繋がらなかった開発者ツール
- たとえば
sendonlyなど
- たとえば
- 繋がらなかったブラウザを利用している OS とバージョン
- たとえば
macOS Big Sur 11.4やWindows 10 2004など
- たとえば
- 繋がらなかったブラウザの種類とバージョン
- たとえば
Chrome 91.0.4472.77など
- たとえば
それ以外にも可能な限り、こちらがサポートをするために必要そうな情報をお送りください。