跳转到内容
搜索文档

会话和轨道

最后更新 查看 MarkdownAgent 设置

Cloudflare Realtime 为构建实时体验提供了一个简单但强大的框架。该系统的核心是三个关键概念:应用(Applications)会话(Sessions)轨道(Tracks)。熟悉这些概念对于使用 Realtime 至关重要。

应用 (Application)

Realtime 应用是不同会话和轨道可以进行交互的环境。例如生产、暂存(staging)或您希望将会话和轨道隔离开来的其他不同环境。可以在应用、会话或轨道级别查询 Cloudflare Realtime 的使用情况。

会话 (Sessions)

Cloudflare Realtime 中的 Session 直接对应于 WebRTC PeerConnection。它表示客户端与根据 Cloudflare 的 anycast 路由确定的最近 Cloudflare 数据中心之间建立的通信通道。通常,客户端将维持单个 Session,包揽客户端与 Cloudflare 之间的所有通信。

  • 与 PeerConnection 的一对一映射:每个 Session 是 WebRTC PeerConnection 的直接体现,有助于实时媒体数据传输。
  • Anycast 路由:客户端连接到最近的 Cloudflare 数据中心,从而优化延迟和性能。
  • 统一通信通道:单个 Session 可以处理客户端与 Cloudflare 之间的所有通信类型,确保流程化的数据流。

轨道 (Tracks)

在一个 Session 内,可以有一个或多个 Tracks

  • Tracks 映射到 MediaStreamTrack:Tracks 与 MediaStreamTrack 概念保持一致,有助于音频、视频或数据传输。
  • 全球唯一 ID:当您将 track 推送到 Cloudflare 时,它会被分配一个唯一 ID,然后该 ID 可用于在其他地方的另一个会话中拉取该轨道。
  • 全球可用:推送和拉取轨道的能力是使 Realtime 成为实时应用程序的多功能工具的核心。每个轨道都可以在全球范围内使用,并可从 App 内的任何 Session 中检索。

作为可编程“电话交换机”的 Realtime

电话交换机的比喻非常适合理解 Realtime。历史上,电话交换机操作员通过手动插拔插头来接通电话。类似地,Realtime 允许动态路由媒体流,充当现代实时通信的可编程电话交换机。

超越“房间”、“用户”和“参与者”

虽然许多 SFUs 利用诸如“房间”之类的概念来管理用户之间的媒体流,但这种方法在可扩展性和灵活性方面存在局限性。Cloudflare Realtime 选择在 Sessions 和 Tracks 上采用更细粒度和灵活的模型,从而支持广泛的使用场景:

  • 大规模远程活动,例如有数千名参与者的“炉边谈话”。
  • 具有将听众带到“台上”能力的交互式对话。
  • 教师可以同时向多个虚拟教室进行演示的教育类应用程序。

呈现协议与媒体流

Realtime 区分了呈现协议(presence protocol)和媒体流,从而在实时应用程序中实现了可扩展性和灵活性。这种分离使开发人员能够打造量身定制的体验,从私密通话到大规模、低延迟的广播。

这篇文档对您有帮助吗?