Cloudflare Realtime 可用于向您的应用程序中添加实时音频、视频和数据。Cloudflare Realtime 使用 WebRTC,这是在浏览器、移动端和原生应用等广泛平台上进行通信的最低延迟方式。
Realtime 与您的后端和前端应用程序集成,以添加实时功能。
-
WebRTC 难以扩展:许多人在扩展 WebRTC 服务器时遇到困难。运营商会遇到同一个“房间”可以容纳多少用户的问题,或者希望构建不符合当前高级 API 概念的独特解决方案。
-
高昂的出网(egress)成本:使用 WebRTC 的成本很高,因为托管解决方案对云出网流量收取高额溢价,而运行自己的服务器则会带来系统管理和扩展开销。Cloudflare 已经拥有 300 多个地点,在某些地点甚至拥有 1000 多台服务器。Cloudflare Realtime 在此架构之上轻松扩展,可以提供最低的 WebRTC 使用成本。
-
WebRTC 正在成长:开发人员正意识到 WebRTC 不仅仅用于视频会议。WebRTC 在许多平台上都得到支持,技术成熟且已被深入理解。
-
不设限(Unopinionated):Cloudflare Realtime 不提供 SDK。相反,它允许您访问原始 WebRTC 来解决可能不适合现有概念的独特问题。该 API 刻意保持简单。
-
无房间概念:与其他 WebRTC 产品不同,Cloudflare Realtime 允许您控制每个轨道 (track)(音频/视频/数据),而不是提供房间之类的抽象。您在简单的发布/订阅 (pub/sub) 之上定义呈现协议。每个终端用户都可以根据需要发布和订阅音频/视频/数据轨道。
-
无绑定:您可以使用 Cloudflare Realtime 来解决您的 SFU 的可扩展性问题。您可以将其与点对点(peer-to-peer)架构结合使用。您可以独立使用 Cloudflare Realtime。使用 Cloudflare Realtime 的程度完全取决于您。
-
SFU:Realtime 是一种特殊的发布/订阅 (pub/sub) 服务器,擅长将媒体数据转发给订阅特定数据的客户端。每个客户端通过 WebRTC 连接到 Cloudflare Realtime,并使用 WebRTC 发送数据、接收数据或两者兼有。这可以是音频/视频轨道或 DataChannels。
-
可扩展:所有 Cloudflare 服务器都作为一个单一服务器运行,因此数百万 WebRTC 客户端可以连接到 Cloudflare Realtime。每个客户端都可以与其他客户端一起发送数据、接收数据或两者兼有。
-
从 echo 示例开始,您可以在创建 Realtime App 时从 Cloudflare 仪表板下载它,也可以从演示中下载。这将向您展示如何发送和接收音频及视频。
-
了解如何通过传递会话 (session) 和轨道 (track) ID 来操作谁可以接收什么媒体。请记住,您可以控制谁接收什么媒体。每个媒体轨道都由一个唯一 ID 表示。保存和分发此 ID 是您的责任。
- 创建一个应用程序,在其中管理到 Cloudflare Realtime 的每个连接以及由每个连接创建的轨道 ID。您可以使用任何工具来保存和共享轨道。查看演示处的示例应用程序,例如 Orange Meets ↗,它是一个成熟的视频会议应用程序,使用 Workers Durable Objects 来跟踪轨道 ID。