关键词:信令与RTCPeerConnection建立,通过offer和answer交接SDP描述符
一、WebRTC一对一
1.1 信令与RTCPeerConnection建立
WebRTC使用RTCPeerConnection来在浏览器之间传递流数据,在建立RTCPeerConnection实例之后,想要使用其建立一个点对点的信道,我们需要做两件事:
1)确定本机上的媒体流的特性,比如分辨率、编解码能力啥的(SDP描述符)
2)连接两端的主机的网络地址(ICE Candidate)
注:由于连接两端的主机都可能在内网或是在防火墙之后,我们需要一种对所有联网的计算机都通用的定位方式。这其中就涉及NAT/防火墙穿越技术。
1.2 通过offer和answer交接SDP描述符
模拟两个用户(甲和乙)之间建立点对点连接流程如下:
1)甲和乙各自建立一个PC实例
2)甲通过PC所提供的createOffer()方法建立一个包含甲的SDP描述符的offer信令
3)甲通过PC所提供的setLocalDescription()方法,将甲的SDP描述符交给甲的PC实例
4)甲将offer信令通过服务器发送给乙
5)乙将甲的offer信令中所包含的的SDP描述符提取出来,通过PC所提供的setRemoteDescription()方法交给乙的PC实例
6)乙通过PC所提供的createAnswer()方法建立一个包含乙的SDP描述符answer信令
7)乙通过PC所提供的setLocalDescription()方法,将乙的SDP描述符交给乙的PC实例
8)乙将answer信令通过服务器发送给甲
9)甲接收到乙的answer信令后,将其中乙的SDP描述符提取出来,调用setRemoteDescripttion()方法交给甲自己的PC实例
2016年11月23日星期三