WebRTC - 教程

  • 简述

    借助 Web 实时通信 (WebRTC),现代 Web 应用程序可以轻松地将音频和视频内容流式传输给数百万人。在本教程中,我们将解释如何使用 WebRTC 快速轻松地建立与其他 Web 浏览器的对等连接。
    本教程将帮助所有想要学习如何构建实时广告、多人游戏、直播、电子学习等应用程序的开发人员,这些应用程序是实时发生的。
    WebRTC 是一个强大的工具,可用于将实时通信 (RTC) 功能注入浏览器和移动应用程序。本教程仅涵盖 WebRTC 的基础知识,任何对实时会话管理有一定程度了解的普通开发人员都可以轻松掌握此处讨论的概念。
  • 简述

    随着WebRTC(Web 实时通信)的出现,Web 对实时通信不再陌生。尽管它于 2011 年 5 月发布,但它仍在发展中,其标准也在不断变化。一组协议由IETF(互联网工程任务组)的 WEB 浏览器工作组http://tools.ietf.org/wg/rtcweb/中的实时通信标准化,而新的 API 集由IETF(互联网工程任务组)标准化。 W3C(万维网联盟)Web 实时通信工作组位于http://www.w3.org/2011/04/webrtc/. 随着 WebRTC 的出现,现代 Web 应用程序可以轻松地将音频和视频内容流式传输给数百万人。
  • 基本方案

    WebRTC 允许您快速轻松地设置与其他 Web 浏览器的对等连接。要从头开始构建这样的应用程序,您需要大量的框架和库来处理数据丢失、连接断开和 NAT 遍历等典型问题。使用 WebRTC,所有这些都内置在浏览器中,开箱即用。该技术不需要任何插件或第三方软件。它是开源的,其源代码可在http://www.webrtc.org/ 免费获得。
    WebRTC API 包括媒体捕获、编码和解码音频和视频、传输层和会话管理。
    基本方案

    媒体捕捉

    第一步是访问用户设备的摄像头和麦克风。我们检测可用设备的类型,获得用户访问这些设备的权限并管理流。

    编码和解码音频和视频

    通过 Internet 发送音频和视频数据流并非易事。这是使用编码和解码的地方。这是将视频帧和音频波分成更小的块并压缩它们的过程。这种算法称为编解码器。有大量不同的编解码器,由具有不同业务目标的不同公司维护。WebRTC 内部还有许多编解码器,如 H.264、iSAC、Opus 和 VP8。当两个浏览器连接在一起时,它们会在两个用户之间选择最优化的支持编解码器。幸运的是,WebRTC 在幕后完成了大部分编码。

    运输层

    传输层管理数据包的顺序,处理数据包丢失并连接到其他用户。WebRTC API 再次让我们可以轻松访问事件,这些事件会告诉我们连接何时出现问题。

    会话管理

    会话管理处理管理、打开和组织连接。这通常称为信令。如果您将音频和视频流传输给用户,那么传输附带数据也是有意义的。这是由RTCDataChannel API完成的。
    来自 Google、Mozilla、Opera 等公司的工程师在将这种实时体验带入 Web 方面做得非常出色。
  • 浏览器兼容性

    WebRTC 标准是网络上发展最快的标准之一,因此这并不意味着每个浏览器都同时支持所有相同的功能。要检查您的浏览器是否支持 WebRTC,您可以访问http://caniuse.com/#feat=rtcpeerconnection。在所有教程中,我建议您使用 Chrome 浏览所有示例。

    试用 WebRTC

    让我们现在就开始使用 WebRTC。将浏览器导航到https://apprtc.appspot.com/上的演示站点
    点击加入
    点击“加入”按钮。您应该会看到一个下拉通知。
    单击允许
    单击“允许”按钮开始将视频和音频流式传输到网页。您应该会看到自己的视频流。
    打开网址
    现在在新的浏览器选项卡中打开您当前所在的 URL,然后单击“加入”。您应该看到两个视频流 - 一个来自您的第一个客户端,另一个来自第二个客户端。
    视频流
    现在你应该明白为什么 WebRTC 是一个强大的工具了。
  • 用例

    实时网络为一系列全新的应用程序打开了大门,包括基于文本的聊天、屏幕和文件共享、游戏、视频聊天等。除了通信之外,您还可以将 WebRTC 用于其他目的,例如 -
    • 实时营销
    • 实时广告
    • 后台通信(CRM、ERP、SCM、FFM)
    • 人力资源管理
    • 社交网络
    • 约会服务
    • 在线医疗咨询
    • 金融服务
    • 监视
    • 多人游戏
    • 现场直播
    • 电子学习

    概括

    现在您应该对 WebRTC 一词有了清晰的了解。您还应该了解可以使用 WebRTC 构建哪些类型的应用程序,因为您已经在浏览器中尝试过。综上所述,WebRTC 是一项非常有用的技术。