第3章 构建浏览器 RTC 梯形图:本地视角

    在本章中,我们将分析 WebRTC 1.0 API,其主要目的是允许向其他浏览器发送和接收媒体

    正如我们在前几章中已经预期的那样,需要一种机制来适当地协调实时通信,并允许对等方交换控制消息。 在 WebRTC 内部尚未定义这种机制(通常称为信令),因此不属于 RTCPeerConnection API 规范。

    在一开始就做出了使这种 API 与信令不可知的选择。 WebRTC 中的信令未标准化,因为浏览器之间的互操作性是由 Web 服务器使用下载的 JavaScript 代码来确保的。 这意味着 WebRTC 开发人员可以通过依赖于他们最喜欢的消息传递协议(SIP,XMPP,Jingle等)来实现信令通道,或者他们可以设计一种专有的信令机制,该机制可能仅提供应用程序所需的功能。

    需要信令通道以允许WebRTC对等点之间交换三种类型的信息:

    在正确交换和协商所有上述信息之前,WebRTC 对等方之间无法传输任何数据。

    在本章中,我们将忽略与信令通道的设置(和使用)有关的所有上述问题,仅关注 RTCPeerConnection API 的描述。我们将通过某种方式在单台计算机上模拟对等行为来实现此目标。这意味着我们暂时将绕过信令通道设置阶段,并让上述三个步骤(会话管理,网络配置和多媒体功能交换)在单个计算机上进行。 在第5章中,我们将通过展示本地场景如何在两个启用 WebRTC 的对等点之间引入真正的信令通道,来最终向 WebRTC 建筑中添加最后一块砖。

    回到 API,调用 会创建一个 RTCPeerConnection 对象,该对象是两个用户/浏览器之间通信通道的抽象,可以为特定的 输入或输出,如 图3-1 所示。配置参数包含信息,以查找对 NAT 遍历设置阶段必需的对 STUN 和 TURN 服务器的访问。

    图3-1 将 MediaStream 添加到