Open2
nest: そもそもService worker → WebRTC proxyなんて可能なのか問題
やりたいこと: 野良httpsサーバーの代わりにWebRTCサーバーを使ってhttpsサイトをp2pで提供したい
これができると、ngrokのようなサービスを利用しなくても簡単にhttpsサイトのローカルテストができて嬉しい。Unity WebGLとかビルドがでかくて転送時間がバカにならんからね。。
こんなの誰でも思いつくので、その辺に実装が無いということは、何か難しいポイントがあるんではないだろうか。
思いつくフロー
普通に考えると、WebRTC自体をservice worker(Web worker)で使えないあたりが壁になるんではないだろうか。つまり、WebRTCのパケット送受信自体はメインスレッドにさせる必要がある。
- ページがロードされたら一旦service workerは素通しにする
- service workerを更新する
- WebRTCセッションを張る
- service workerからのリクエストを
onmessage
で受けてWebRTCに中継できるようにする -
<iframe>
を全面に張って、service workerにページをロードさせる
リロードしたらWebRTCセッション切れちゃうもんね。。いわゆる index.html
はURL部分のフラグメントを見て自分が
- 初期ロード
- WebRTCセッションを張ったWindow
- Webアプリがロードされるiframe
のいずれなのかを検出することになる。。?