Open3

半手動WebRTC

okuokuokuoku

手動WebRTC

https://html5experts.jp/mganeko/19814/

まず、これを改造してdataChannelにしてみた。

https://codepen.io/okuoku/pen/yLQMXQQ

  1. (A) Connect をクリック (Connectをクリックしたブラウザが親になる)
  2. (A) SDP to send に表われた文字列をクリップボードにコピー
  3. (B) SDP to receive にクリップボードからペーストし、 Receive Remote SDP をクリック
  4. (B) SDP to send に表われた文字列をクリップボードにコピー
  5. (A) SDP to receive にクリップボードからペーストし、 Receive Remote SDP をクリック

これで接続が確立される。 Message に何か入力して Send すると、対向のブラウザの Receive に表われる。

okuokuokuoku

必要性

一応 localhost はinsecureなhttpでもCORSリクエストの対象にできることになっている。 ただ、今回の場合は(テストはlocalhostでやってるけど、)ローカルネットワーク上の一般的なホストで動作することが期待される。

https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content#loading_locally_delivered_mixed-resources

ただこの挙動をinsecureと見做す人もいる。Safariは未だにlocalhostを特別扱いしていないし、

https://brave.com/ja/privacy-updates/27-localhost-permission/

Braveはallowlistを開示している https://github.com/brave/adblock-lists/blob/master/brave-lists/localhost-permission-allow-list.txt (このリストにないサイトはプロンプトされる)。たとえば、IntelとかLenovoのツールは、管理用webからlocalhostにアクセスしてローカルPCの情報にアクセスする。