はじめに
先日、WebRTC Singaling Server AyameのSaaSがリリースされていたので動かしてみたところ、何故か繋がりませんでした。
medium.com
色々と調べてみたところ、原因は灯台下暗しだったので、記録としてまとめておきます。
症状
- Ayameのサンプル実行時に
ICE connection Status has changed to failed
とコンソールに出力される - WebRTC samplesのPeer connectionもiceConnectionStateがfailedになる
- WebRTC Troubleshooterでチェックしたところ、ConnectivityのHost connectivityだけが
[ FAILED ] Timed out
となる - Chrome(stable,canary)、Firefox、Safari、いずれも動作しない
- Macのみで動作しない。Windows、Androidは動作する。
原因
結論から言うと、「Macのファイアウォール」でした。
システム環境設定→セキュリティとプライバシー→ファイアウォールにある「ファイアウォールオプション」をクリックし、「外部からの接続を全てブロック」のチェックを外せばOKです。
Ayameは全く悪くないです。
調べたこと
- Ayame関連
- ブラウザ関連
- 他のソフト関連
- OS関連
- ハードウェア関連
- その他
- 一晩置いてみる(寝る)
- 「何故か動いている」を期待した
- 変化なし
- 一晩置いてみる(寝る)
終わりに
もう少し知識があれば、もっと早く原因を特定できたかもしれません。
WebRTCの動作検証では、L1からL7まで様々な知識が求められるのでとても大変でした。
まさに「総合格闘技」ですね。
AyameはWebRTC Native Client Momoと組み合わせて動かすこともできるようなので、ラズパイから簡単に映像配信ができるようになりそうです。
今後も目が離せないですね!
2022/02/12 追記
公式のWebRTC Troubleshooterが閉鎖されていたため、自分でホストしているものにURLを差し替えました。