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

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