TL;DR;
- webRTCはtrackイベントが発火して終わりではない
- connectionstateがconnectedになるまではシグナリングし続ける必要あり
trackで終わりではない
大体のwebRTCのサンプルを見ると、大体ontrackに設定した関数が呼び出されて、
MediaStreamが取れればめでたしめでたしといった感じになっています。
映像を映す分にはこれでOKなのですが、シグナリングのためのDB監視やwebSocket接続を
リソース管理を効率的に行おうとしてその場で切断しようとすると面倒なことになる場合があります。
時間がかかるパターンのみ引っかかるという厄介なケース
同一LAN内での接続や、STUNサーバーを利用したパターンなどでは
onTrac後即シグナリングをやめても大体問題ありませんが、TURNサーバーを使ったケースではほとんど繋がりません。
(まったくつながらないわけではないという一番いやなパターンです)
基本的に、connectionstateがconnectedになるまではシグナリングの継続は必須です。