一 WebRTC会话流程
当浏览器A,B因为应用中的某种需要,要建立WebRTC在两个浏览器之间的直接连接,当A开始联系B时,首先通过WebSocket的WSS(通过https协议时)向信令服务器发送一个会话描述协议,信令服务器做中介,介绍两个互不相识的人认识。A发过来的是offer,信令服务器将这个会话描述协议发送到浏览器B,B收到会话描述协议之后回应一个answer,信令服务器再将其发送到A浏览器。交换完成会话描述协议后,两个终端之间开始尝试通过ICE候选字进行打洞,如果NAT类型符合要求可以成功就开始协商秘,到这里就可以进行一个安全的媒体数据会话了,这个会话流程如图1所示。
图1 WebRTC会话流程
二 WebRTC架构
WebRTC的架构[21]主要由以下几部分组成:
- Web App:开发者通过编码完成的应用,可以在其内部提供基于WebRTC的某些服务。
- Web API:面向开发者的WebRTC标准API接口。开发者通过API可以方便快捷的开发出自己想要的应用功能。
- PeerConnection:面向浏览器厂商本地API,可以通过该API从底向上的实现面向开发者的Web API。
- Session:传输层包括数据通道。
- Voice Engine/Vudie Engine:包含所有的音视频媒体流处理相关内容。
- NetWork I/O / Video Capture / Audio Capture/Render:网络I/O模块即音视频抓捕模块。
WebRTC架构图如图2所示。