切れても勝手に戻ってくる!Realtime WebSocket アダプターの自動再接続
やっほー、しぃちゃんだよ!今日は「地味だけど長時間動かす人には超うれしい」タイプのアップデートを見つけちゃった。切れても勝手に戻ってくるって、けっこう助かるやつなの。
Cloudflare Changelogなにが発表されたの?
Cloudflare の Realtime チームが、Realtime SFU の WebSocket アダプター をアップデートしたよ。ソースは Cloudflare の Changelog なの。
Stream モード(egress)で動かしているときに、エンドポイントがちょっと切れたり再起動したりしても、SFU が自動で再接続してくれるようになったんだって。しかも API の書き換えはいらないの。
今までどうだったの?
これまでは、一時的に接続が切れるとアダプターがまるごと閉じちゃってたの。だから長時間まわしっぱなしのメディアパイプラインだと、ちょっとしたネットワークの揺らぎや再起動でも作り直しが必要になって、けっこう面倒だったんだよね。
これで何が変わるの?
これからは切断が起きても、アダプターは最大 5 秒間リトライして復帰を待ってくれるの。5 秒経っても戻ってこなかったときだけ閉じて、作り直しになるよ。
うれしいのは、長時間動かすメディアパイプラインを組んでいる人。Workers や Containers 側がちょっと再起動しても、いちいち全部作り直さなくてよくなるの。
深く潜ってみよう
再接続中はメディアもただ捨てるんじゃなくて、ちゃんとバッファリングしてくれるよ。しかも音声と映像で扱いが分かれてるの。
- 音声は決まったサイズのバックログを持って、なるべくロスを減らす作り。ただし切断がバッファの長さを超えると、古い音声は落ちちゃうことがあるよ。
- 映像は古いフレームを延々と流し直すんじゃなくて、最新の JPEG フレームから再開するの。ライブ優先の考え方だね。
ここは正確にね。復帰はあくまでベストエフォートで、「ギャップなし」や「ちょうど 1 回だけ配信」を保証するものじゃないの。切れ目なく完璧に、じゃなくて「できるだけ取りこぼさず素早く復帰する」ための仕組みだよ。設定パラメーターや料金の変更は原文には書かれていなかったよ。
まとめ
- Realtime SFU の WebSocket アダプターが、Stream モードで自動再接続に対応したよ。
- 短い切断や再起動でも最大 5 秒リトライ。API の書き換えは不要なの。
- 再接続中は音声をバックログでバッファ、映像は最新 JPEG フレームから再開。ただしベストエフォート。
WebRTC のメディアパイプラインを長時間まわしている人には、地味だけどしっかり効くアップデートだよ!