webRTC 支持与 SIP、Jingle 和 PSTN 终端建立会话, WebRTC 涉及大量的标准, 由于数(xue)量(bu)众(guo)多(lai), 我们大体介绍一下如何建立 WebRTC 会话, 会话运行期间可执行哪些操作, 以及关闭会话等.
建立 WebRTC 会话
主要有四个步骤:
- 获取本地媒体
- 在浏览器和对等端(其他浏览器或终端)之间建立连接
- 将媒体和数据通道关联至该链接
- 交换会话描述
获取本地媒体
最常见的方式 getUserMedia()
, 可以获得单个本地 MediaStream, 在获取到一个或多个媒体流后, 可使用 MediaStream API 将他们组合到所需的流中.
建立对等链接(敲黑板)
RTCpeerConneciton API
是 WebRTC 的核心, 作用就是在两个对等端之间建立连接(对等端: 万维网上的两个通信终端)
RTCpeerConneciton
构造函数方法的唯一输入项是一个配置对象, 该对象包含 ICE (Interactive Connectivity Establishment) “打洞”通过各种网络地址转换(Network Address Translation, NAT)设备和防火墙时所使用的信息
交换媒体或数据
建联之后, 可以将任意数量的媒体流发送到远端浏览器, 这样本地端就有了新的媒体流, 并且可以像操作其他本地流那样的处理他们
需要注意, 每次更改媒体时, 都需要在两个浏览器之间协商(或重新协商)如何在连接通道中表示媒体, 当从本地或远端发出或删除媒体请求时, 可请求浏览器生成响应的 RTCSessionDescription
对象(此容器存放会话描述, 即有关如何建立媒体会话的信息), 用于表示所有通过对等连接传输的所有媒体集合