大家知道前段时间我们已经把webrtc协议视频流的输出成功运用在了EasyGBS上,下一步就是要把webrtc协议逐渐普及到我们其他的平台上,方便用户的使用。
作为一个开发者,开发任何webrtc应用的首要步骤就是创建RTCPeerConnection。成功创建一个RTCPeerConnection的前提就是需要理解浏览器创建一个对等连接的内部工作原理,了解一下webrtc的知识储备。
webrtc api在浏览器的实现,这些api方法和对象会使我们开发者可以与webrtc层沟通并与其他用户建立对等连接。主要由以下技术组成:
A、RTCPeerconnection对象
B、信号传递和交涉
C、会话描述协议(SDP协议)
D、交互式连接建立(ICE互相设置)
RTCPeerConnection对象是webrtc api的主入口,是通过它初始化一个链接、连接他人以及传递媒体信息,此对象的功能是维护浏览器内会话和对等连接的状态。它也负责对等连接的建立。
浏览器使用就是一个简单的对象,可以通过new来实例化一个对象:new RTCPeerconnection(configuration).
信息传递和交涉其实是需要对象浏览器的网络地址才能连接它,是通过地址由IP地址和端口号组成,这样才能让别人找到。所以为了连接到其他用户,电脑上会建一张列表来存储那些你能连接的用户,为了与其他用户沟通,这样仅需要交换联络信息,其他的就由webrtc内部来处理。
SDP是一种久经考验的用于在客户端间建立基础媒体的连接方式。SDP是由浏览器提供的基于字符串的二进制数据对象。这种字符串形式一般为键值对,但是有换行符分割:”key”=”value” 。key是一个单字符,用来表明值的类型;value是由机器可读的配置项组成一个有结构的文本,都是以换行符分割。
STUN和TURN结合在一起就是一个标准的ICE。ICE过程刚开始是不知道每一个用户的网络配置,它是通过一些步骤来一步一步发现对方的网络是如何建立的,其目的是发现对方网络足够多的信息,以此来建立一个成功的连接。每一个ICE候选路径都是通过STUN和TURN来找到的客户端程序将使用这些信令信息来发送ICE候选者。当足够多的地址被发现且验证通过,这样连接建立后,webrtc连接过程就结束了,可以进行webrtc通信。