这是一种最常见的情景,两个浏览器同时从Web服务器中下载同一个WebRTC服务器中下载有WebRTC功能的Web程序。就像上面的图展示的那样。为什么会是三角形?因为这三个元素之间的信令路线和和媒体之间所构成的形状恰似一个三角形。两个浏览器之间的通讯并不通过Web服务器,而是通过建立对等连接来实现音视频媒体以及一些附加数据。
在WebRTC中我们常常把浏览器和服务器之间的连接成为信令,但是其实他并非指电话系统中的信令。信令在WebRTC中并没有实现标准化。
由于信令没有标准化,所以现在的信令被视为应用程序的一部分。HTTP和WebScoket都可以作为传输信令的通道。野狗实时视频通话技术在这部分使用的就是基于WebSocket的野狗实时数据同步来作为信令。
WebRTC中的梯形:
WebRTC梯形中采用的都是标准协议。例如:很多视频会议系统用到的会话发起协议(SIP)或者Jingle。当然,还可以采用专有的信令协议。
会话发起协议(Session Initiation Protocol,缩写SIP)是一个由IETF MMUSIC工作组开发的协议,作为标准被提议用于建立,修改和终止包括视频,语音,即时通信,在线游戏和虚拟现实等多种多媒体元素在内的交互式用户会话。
Jingle由Google及XMPP标准基金会设计。其多媒体流被设计用于RTP(实时传输协议)。若需要,可由NAT穿透辅助以使用ICE(交互式连接建立)。 FROM 维基百科
如果浏览器想和一个SIP客户端(例如SIP电话)进行视频通话,首先要做的少就是从Web服务器下载带有WebRTC代码的网页程序,在浏览器端向Web服务器发起音频通话请求对象M,Web服务器把M发给SIP服务器,SIP服务器把请求M发给SIP客户端(例如SIP电话)。SIP客户端在成功接收请求之后会相应另外一个请求对象S发给SIP服务器,SIP服务器把S发给Web服务器,Web服务器把S发给浏览器。在进行外上面的步骤后,浏览器和SIP服务器开始进行打洞,密钥协商,媒体会话等操作。会话关闭的时候流程和建立链接的时候类似。这里不再复述。
采用Jingle协议实现WebRTC的功能:
整个过程和SIP模式相比除了Web服务器A和Web服务器B之间采用的协议不同,其他的基本相似。这里不再详细说明。