Cloudflare 实时 WebSocket 适配器现支持自动重连并可缓冲 WebRTC 媒体
Cloudflare 实时 SFU 是一款运行在 Cloudflare 全球网络上的 WebRTC 选择性转发单元,使您无需管理 SFU 基础设施或区域,即可在全球 WebRTC 客户端之间路由实时音频、视频和数据。
当您使用 WebSocket 适配器将 WebRTC 媒体流传输至 WebSocket 端点时,该适配器现在可在端点短暂断连或重启后自动重连并缓冲音视频。
许多团队还将实时 SFU 用作后端应用程序的媒体层,例如转录、录制、笔记和 Agent 媒体处理服务。这些系统通常需要在后端基础设施中消费来自 SFU 的实时 WebRTC 音频或视频,包括 Durable Objects、Workers、Containers 或外部服务,而无需自行运行 WebRTC 客户端。
WebSocket 适配器通过将 WebRTC 媒体从 SFU 以应用程序可消费的载荷形式流式传输至标准 WebSocket 端点来弥合这一差距:PCM 音频帧和 JPEG 视频帧。
当您在 Stream 模式(出口)下使用 WebSocket 适配器将实时音视频从 SFU 发送到您自己的 WebSocket 端点时,SFU 现在会在端点短暂断连或重启后自动重连。这对于长时间运行的媒体管道尤其有用,因为在录制、转录或实时分析任务仍在进行时,WebSocket 端点可能会短暂重启。
此前,WebSocket 端点的短暂断连可能导致适配器关闭,需要应用程序在媒体恢复前重新创建适配器。现在,SFU 无需更改 API 即可重试同一端点长达 5 秒。如果端点在此时间窗口内恢复,音视频传输将自动恢复。
重连行为还包含实时优先媒体缓冲,因此短暂中断可减少媒体丢失,而无需重播过时视频。
重连期间:
- 音频使用有限的短暂积压队列来减少可听见的丢失。如果中断时间超过积压队列的覆盖范围,较旧的音频可能会被丢弃。
- 视频从最新可用的 JPEG 帧恢复,而不是重播过时帧。
- 恢复为尽力而为,不保证无间隙或精确一次传递。
如果端点在 5 秒重连窗口后仍不可用,适配器将关闭并必须重新创建。