了解 Cloudflare Realtime 的限制和超时对于优化应用程序的性能和可靠性至关重要。本节概述了将 Cloudflare Realtime 集成到您的应用时应注意的关键约束和行为。
- 每个账户每月可免费获得 1,000 GB 从 Cloudflare 到您客户端的数据传输量。
- 从您的客户端到 Cloudflare 的数据传输始终是免费的。
-
每个会话的 API 限制:每个会话每秒最多可发起 50 次 API 调用。没有基于 App 的速率限制,仅限制会话。
-
每次 API 调用的轨道数:单次 API 调用最多可添加 64 个轨道。如果需要向会话中添加更多轨道,应将其分摊到多次 API 调用中。
-
每个会话的轨道数:会话可以包含的轨道数量没有上限,实际限制受您往返 Cloudflare 的连接带宽约束。
- 轨道超时:轨道在非活动状态持续 30 秒后会自动超时并被垃圾回收,其中“非活动”定义为 Cloudflare 未接收到任何媒体数据包。这一机制确保了在所有使用该轨道的会话中资源的有效利用和会话的整洁。
- DataChannel 确认超时:当远程 DataChannel 启用
waitForAck时,订阅者必须在创建通道后 15 秒内发送其第一条消息(确认信息)。如果未在此时间内发送,SFU 将销毁该门控通道且不转发任何消息。请再次创建远程 DataChannel 以重试。
- 会话状态:对于会话上的任何操作(例如拉取或推送轨道),PeerConnection 状态必须为
connected。在超时之前,操作将最多阻塞 5 秒以等待该状态。这确保了只有处于活动状态且可行的会话才能参与媒体传输。
- 互联网连接注意事项:客户端与 Cloudflare 之间可能发生互联网连接中断,这是必须解决的运行实际问题。建议实施检测和重新连接策略以维持会话连续性。这可能涉及向后端服务器发送周期性“心跳”信号来监视连接状态。一旦检测到连接问题,建议自动尝试重新连接并建立新会话。在超时之前,会话和轨道将在 30 秒内保持可用以进行重用,这为重新连接尝试提供了一个短暂的窗口。
遵守这些限制并理解超时行为,将有助于确保您的应用程序保持响应迅速且稳定,同时提供无缝的用户体验。
Cloudflare Realtime 支持以下编解码器:
- H264
- H265
- VP8
- VP9
- AV1
- Opus
- G.711 PCM (A-law)
- G.711 PCM (µ-law)