質問: WebRTC,PeerJSを使用した、PCとAndroidアプリ間の音声通話システムを構築しています。 PC側はWebブラウザ、Android側はWebViewでの実装です。 WebViewは標準のものではWebRTCが動かなかったり不安定なので、CROSSWALKを使用しています。 https://crosswalk-project.org/ ただCROSSWALKはライブラリの容量が大きかったりBluetoohヘッドセット仕様時の挙動が不安定なので、WebRTC部分をネイティブ実装に変えよう思っています。 AppRTCをビルドしてデモを実行し、ライブラリを自分のアプリに取り込むところまでは出来たのですが、PCのWebブラウザと接続する方法が分かりません。 わたしはPeerJSを使うことはできるのですが、Turn、ICEなど接続部分は理解していません。 シグナリングを勉強し直すコストと、ブラウザ側の実装コストを節約するため、PeerJSのサーバーはそのまま使いたいと思っています。 ネイティブでPeerJSを使うライブラリはあるか、実装の難易度は高いか、そもそもPeerJSはブラウザ専用で無理なのか、経験者のかたご教授いただけないでしょうか。 よろしくお願い致します。
回答: SkyWayのAndroid SDKを使ってみてはいかがでしょう。 SkyWayの、JSのライブラリはPeerJSライブラリをベースにしています。 デフォルトの設定だとSkyWayのシグナリングサーバーおよびSTUN/TURNサーバーを使用するようになってますが、設定で変更できますので、ご自身が用意したサーバーのURLに変更すれば接続できるかと思います。 PeerJSのサーバーとおっしゃってるのはたぶんシグナリングサーバーに当たるのかと思います。 PeerJSでのシグナリングサーバー/STUN/TURNサーバーの設定 ``` var peer = new Peer({ key: 'APIKEY' host: 'シグナリングサーバーのアドレス', path: '/path', // 必要であればシグナリングサーバーのパス port: 'シグナリングサーバーのポート', config: {'iceServers': [ { url: 'stun:stun.l.google.com:19302' }, // STUNサーバー { url: 'turn:homeo@turn.bistri.com:80', credential: 'homeo' } // TURNサーバー ]} }); ```