管理进化

webrtc技术详解


WebRTC是一个开源项目,旨在使得浏览器能为实时通信(RTC)提供简单的JavaScript接口。说的简单明了一点就是让浏览器提供JS的即时通信接口

一、 WebRTC概念

我们都知道浏览器本身不支持相互之间建立信道进行通信,都需要通过服务器进行中转。比如现在有两个客户端—甲、乙,他俩想要进行通信,首先需要甲和服务器、乙和服务器之间建立信道。甲给乙发送消息时,甲先将消息发送到服务器上,服务器对甲的消息进行中转,发送到乙处,反过来也是一样。这样甲与乙之间的一次消息要通过两段信道,通信的效率同时受制于这两段信道的带宽。如何建立浏览器之间的点对点传输,一直困扰着开发者。因此WebRTC应运而生。

WebRTC旨在使得浏览器能为实时通信(RTC)提供简单的JavaScript接口。这个接口所创立的信道并不是像WebSocket一样,打通一个浏览器与WebSocket服务器之间的通信,而是通过一系列的信令,建立一个浏览器与浏览器之间(-to-peer)的信道,这个信道可以发送任何数据,而不需要经过服务器。

二、 WebRTC的功能

①   能用于音视频实时互动,视频会议

②   能用于游戏、即时通讯、文件传输等等

③   它是一个采集,编码,传输音视频处理(回音消除、降噪等)

三、 WebRTC架构

整体架构分为应用层和核心层。应用层提供实现相关业务逻辑Api,核心层提供应用层需要的核心API。

①   第一层为C++ API,其中最主要的是PeerConnection,这个接口需要重点学习和掌握

②   第二层为Session层,为上下文管理层,应用里的音频和视频及非音视频的数据处理逻辑都可以在这层进行。

③   第三层为引擎和传输层,包括音频引擎和视频引擎,以及音视频的传输,这也是整个架构中最重要的一层。

④   第四层与硬件相关,包括音视频的采集和网络的IO。

WebRTC需服务器提供

①   用户发现以及通信

②   信令传输

③   NAT/防火墙穿越

④   若P2P通信建立失败可作为中转服务器

智齿客服