建立WebRTC会话的四个主要步骤:
(1)获取本地媒体
(2)在浏览器和对等端之间建立连接
(3)将媒体和数据通道关联至该连接
(4)交换会话描述
1.获取本地媒体
WebRTC利用getUserMedia()获取媒体。此方法可用于获取单个本地MediaStream。在获取一个或多个媒体流后,可使用MediaStream API将它们组合到所需的流中。
2.建立对等连接
RTCPeerConnection API能在两个对等端之间建立连接(直接媒体连接,不是通过服务器请求通信)。
建立连接需要一个新的RTCPeerConnection对象。RTCPeerConnection构造函数方法的唯一输入项是一个配置对象,该对象包含ICE“打洞”通过各种NAT设备和防火墙时所使用的信息。
3.交换媒体或数据
建立连接后,可将任意数量的本地媒体流关联到对等连接,以通过该连接发送至远端浏览器。同样,也可将任意数量的远端媒体流发送至对等连接的本地端,这样本地端就有了新的媒体流,而且可以像操作其他本地媒体流那样处理它们。
当两个浏览器交换完RTCSessionDescription对象后,即可建立媒体或数据会话。此时,两个浏览器将开始打洞。打洞完毕后,即可开始协商密钥,以确保媒体会话的安全。最后可开始媒体或数据会话。
4.关闭连接
应用程序通过对RTCPeerConnection对象调用close()来指示连接已使用完毕,这可能是对用户点击按钮或关闭标签页做出的响应。此操作会停止ICE处理和媒体流传输。如果某一端的浏览器断开网络连接或发送崩溃,媒体或数据通道中发送的持久连接(keep-alive)请求将失效,另一端的浏览器将尝试重新开始打洞,并在打洞失败时关闭会话。