WebRTC 系列——简介

简介
WebRTC,中文全称网页即时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。

WebRTC除了是一套API标准,也是Google的一个对WebRTC标准API的实现(网址:https://webrtc.googlesource.com/src)。

我们主要讨论的是Google的WebRTC的NetWork I/O模块。

整体架构


WebAPI:提供给Web开发者开发基于Web的类视频聊天应用程序的JavaScript API
WebRTC C++ API:一个C++开发的API层,提供给浏览器开发者使用来开发JavaScript API
Transport/Session:
Session 组件是基于libjingle (会话协商 + NAT穿透组件库 https://developers.google.com/talk/libjingle/developer_guide)开发

RTP协议栈 :(Real Time Protocol)

P2P(ICE + STUN + TURN):用来实现点对点传输

Session Management: 用来建立\管理用户会话,这个层Google并没有在WebRTC中给出实现,而把决策权利给了WebRTC开发者。

代码架构
这里主要列出网络I/O相关部分的代码

首先下载 WebRTC native代码

git clone https://webrtc.googlesource.com/src
1
之前的libjingle已经整合到了WebRTC项目中,主要由 rtc_base + pc + p2p 组成
注意:P2P的关键实现在客户端,libjingle只是客户端实现,TURN等server还得自己实现。

整体文件树:

api:WebRTC C++ API,浏览器开发者调用的API

sdk: 各个平台的sdk代码(Android && IOS),用于视频采集、渲染等

rtc_base:一些基础组件的封装代码(SOCKET、线程、事件、buffer、CRC校验等)

p2p:P2P穿透相关,turn/stun等,服务器和客户端


pc:PeerConnection相关


system_wrappers:系统调用的封装

————————————————
版权声明:本文为CSDN博主「thinkerleo7798」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/thinkerleo1997/article/details/80328735

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章