webrtc至少有兩件事必須要用到伺服器:
1、客戶端之間交換建立通訊的元資料(信令)必須通過伺服器。
我們在a和b需要建立p2p連線的時候,至少要伺服器來協調,來控制連線開始建立。而連線斷開的時候,也需要伺服器來告知另一端p2p連線已斷開
2、為了穿越nat和防火牆。
如果客戶端a想給客戶端b傳送資料,則資料來到客戶端b所在的路由器下,會被nat阻攔,這樣b就無法收到a的資料了 。方案,
ice首先嘗試p2p連線,如果失敗就會通過turn伺服器進行轉接。
用來控制通訊開啟或者關閉的連線控制訊息
發生錯誤時用來彼此告知的訊息
**流元資料,比如像解碼器、解碼器的配置、頻寬、**型別等等
用來建立安全連線的關鍵資料
外界所看到的的網路上的資料,比如ip位址、埠等
offer:建立點對點的連線時,發起端(a客戶端)需要傳送的信令
answer:建立點對點的連線時,被叫端(b客戶端)需要傳送的信令
bye:點對點的連線斷開時,傳送的信令
會話描述協議(session description protocal,簡稱sdp)
信令的主要內容的格式都遵循會話描述協議
1) 會話的名稱和目的
2) 會話存活時間
3) 包含在會話中的**資訊,包括:
**型別(video, audio, etc)
傳輸協議(rtp/udp/ip, h.320, etc)
**格式(h.261 video, mpeg video, etc)
多播或遠端(單播)位址和埠
4) 為接收**而需的資訊(addresses, ports, formats and so on)
5) 使用的頻寬資訊
6) 可信賴的接洽資訊
rtp/rtcp協議是流**通訊的基石。rtp協議定義流**資料在網際網路上傳輸的資料報格式,而rtcp協議則負責可靠傳輸、流量控制和擁塞控制等服務質量保證。在webrtc專案中,rtp/rtcp模組作為傳輸模組的一部分,負責對傳送端採集到的**資料進行進行封包,然後交給上層網路模組傳送;在接收端rtp/rtcp模組收到上層模組的資料報後,進行解包操作,最後把負載傳送到解碼模組。因此,rtp/rtcp 模組在webrtc通訊中發揮非常重要的作用。
1. webrtc實踐簡介
4. webrtc實踐信令服務
5. webrtc實踐點對點通訊
7.webrtc實踐總結
WebRTC 架構優化及實踐
suo.im 597g90 目前幾乎所有主流瀏覽器都支援了 webrtc,包括 firefox chrome opera edge。webrtc 1.0 的標準化程序也處於非常高階的階段。越來越多的公司正在使用 webrtc 並且將其加到自己的應用程式中。那麼,企業在構建 webrtc 應用時,應當...
WebRtc安卓實踐教程
背景就不介紹了,本文詳細介紹安卓webrtc流程。1.先建立socket連線,建議對socket用介面進行封裝 指令比較多 初始化自己su ceview local su ceview.init rooteglbase.geteglbasecontext null local su ceview.s...
webrtc音訊引擎總結
該篇文章將基於voice engine模組對webrt音訊做個總結,但是不包括網路傳輸部分的細節介紹。關於webrtc的網路模組,將會在接下來的時間以單獨的網路模組介紹與大家分享。voice engine 引擎模組的 結構 include資料夾下的所有.h檔案,都是在呼叫webrtc音訊引擎的時候必...