Proxy 接続設定を行うことで、外部ネットワークへの通信に Proxy 経由が必須である環境においても、 ライブストリーミング関連の通信全体(WebSocket 接続及び、WebRTC トランスポートプロトコル)を Proxy 経由にすることができ、Live Streaming API が利用できます。
Web SDK を使用する場合は、Web ブラウザの機能で Proxy 経由の接続を行うことができるため、そちらをご利用ください。 その他の SDK を使用する場合は、 後述する Proxy 接続設定 API を使用することで、 Proxy 経由の接続を行うことができます。
※ Proxy 接続設定 API は現在 Android SDK および Windows SDK のみ対応
Proxy 接続設定は connect()
メソッドの Option
指定で行います。
option.proxy
として ProxyOption
を設定することで Proxy 設定を行うことができます。
url は以下の形式の文字列です
http://<username>:<password>@<proxyhost>:<proxyport>/
option.proxy
の設定は、Android SDK では Option.Builder
の proxy()
メソッドで行えます。
また、Proxy 接続は iceServers に使用する TURN Protocol が TCP/TLS の際に適用されるため、option.iceServersProtocol
の設定により UDP 通信が発生しないようにすることで、proxy 経由を必須とすることができます。
val option = Option.Builder()
.sending(SendingOption(true))
.receiving(ReceivingOption(true))
.iceServersProtocol(IceServersProtocol.TLS)
.proxy("http://user:pass@proxyhost:3128/")
.build()
client.connect(clientID, accessToken, option)
THETA で Proxy を利用する場合、「Proxy 接続設定 (Android)」の設定に加えて、THETA 本体への設定が必要となります。
設定は THETA Web API v2.1 を用いて行います。
無線 LAN を使用する場合と 有線 LAN を使用する場合とで設定コマンドが異なります。
camera._setAccessPoint コマンドで_proxy を設定する
camera.setOptions コマンドで_proxy を設定する
プラグインで THETA Web API v2.1 を使用すれば、Live Streaming API の Proxy 設定に使用する値を THETA 本体から取得することができます。
※ ただしセキュリティ保護の観点から password は Web API では取得できないため、別途プラグインに受け渡しておく必要があります。
camera.getOptions コマンドで _networkType を参照する
camera._listAccessPoints コマンドで アクセスポイントの _proxy を取得する
camera.getOptions コマンドで _proxy を取得する
curl を用いた 無線 LAN Proxy 設定の例
curl -H "content-type: application/json; charset=utf-8" -X POST \
localhost:8080/osc/commands/execute -d '{\
"name": "camera._setAccessPoint",\
"parameters": {\
"_proxy": {\
"use": true,\
"url": "192.168.0.1",\
"port": 3128,\
"userid": "user",\
"password": "pass"\
},\
.... // その他の設定
}\
}'
option.proxy
の設定は Windows SDK では Option
の SetProxyOption()
メソッドで行えます。
var option = new Option()
.SetSendingOption(new SendingOption(new SendingVideoOption(), true))
.SetReceivingOption(new ReceivingOption(true))
.SetLocalLSTracks(LocalLSTracks)
.SetProxyOption(new ProxyOption("http://user:pass@proxyhost:3128/"));
client.Connect(clientId, accessToken, option);
この情報は役に立ちましたか?