管理进化

webrtc原理是什么


WebRTC原理是浏览器实时通信RTC的提供JS接口,JS接口通过信令建立浏览器点对点(peer-to-peer,P2P)的信道,信道可发送任何数据并无需经过服务器。它是一个免费的开放项目,它通过简单的API为浏览器和移动应用程序提供实时通信(RTC)功能

一、WebRTC概念

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

二、WebRTC架构

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

①   第一层是C++API,也就是说提供给外面的API接口,这些API其实非常少,最主要的就是peerconnetion,对等链接,webrtc最重要的就是PtoP传输。

②第二层是session层,也就是上下层管理层,包括你的音频,视频还有非音频数据的传输,都可以通过session层做处理,都可以通过session层进行管理,这一层管理这些相关的逻辑。

②   第三层最重要,包括音频引擎,视频引擎,还有传输。这里的设计是将音频,视频还有传输分开,这种设计就非常好,传输的时候可以只关心传输,而不需要了解其他的业务逻辑,音频与视频也分别走各自的逻辑,

③   最后一层,与硬件相关,包括音频的采集与渲染;视频的采集,注意webrtc的核心库里面没有视频的渲染,所有的渲染都需要应用层或者浏览器层去做。最后是网络IO。

WebRTC需服务器提供:

①用户发现以及通信

②信令传输

④   NAT/防火墙穿越

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

三、WebRTC原理

WebRTC的实现是建立浏览器之间的直接连接而无需服务器中转,即P2P。因此要求彼此知道对方外网地址,而计算机大多位于NAT之后,少数主机拥有外网地址。这就要求一种方式可穿透NAT技术(STUN、TRUN)。

WebRTC实用默认STUN服务器获取当前主机的外网地址和端口,Chrome默认的是Google域名下的一个STUN,国内不大稳定。

P2P建立过程需依赖服务端中转(信令服务器),需实用双工通讯方式的WebSocket来实现信令的中转。

智齿客服