WebRTC中的三角形和梯形
WebRTC中的三角形:
這是一種最常見的情景,兩個瀏覽器同時從Web服務器中下載同一個WebRTC服務器中下載有WebRTC功能的Web程序。就像上面的圖展示的那樣。為什么會是三角形?因為這三個元素之間的信令路線和和媒體之間所構成的形狀恰似一個三角形。兩個瀏覽器之間的通訊并不通過Web服務器,而是通過建立對等連接來實現音視頻媒體以及一些附加數據。
在WebRTC中我們常常把瀏覽器和服務器之間的連接成為信令,但是其實他并非指電話系統中的信令。信令在WebRTC中并沒有實現標準化。
由于信令沒有標準化,所以現在的信令被視為應用程序的一部分。HTTP和WebScoket都可以作為傳輸信令的通道。野狗實時視頻通話技術在這部分使用的就是基于WebSocket的野狗實時數據同步來作為信令。
WebRTC中的梯形:
WebRTC梯形中采用的都是標準協議。例如:很多視頻會議系統用到的會話發起協議(SIP)或者Jingle。當然,還可以采用專有的信令協議。
會話發起協議(Session Initiation Protocol,縮寫SIP)是一個由IETF MMUSIC工作組開發的協議,作為標準被提議用于建立,修改和終止包括視頻,語音,即時通信,在線游戲和虛擬現實等多種多媒體元素在內的交互式用戶會話。
Jingle由Google及XMPP標準基金會設計。其多媒體流被設計用于RTP(實時傳輸協議)。若需要,可由NAT穿透輔助以使用ICE(交互式連接建立)。 FROM 維基百科
如果瀏覽器想和一個SIP客戶端(例如SIP電話)進行視頻通話,首先要做的少就是從Web服務器下載帶有WebRTC代碼的網頁程序,在瀏覽器端向Web服務器發起音頻通話請求對象M,Web服務器把M發給SIP服務器,SIP服務器把請求M發給SIP客戶端(例如SIP電話)。SIP客戶端在成功接收請求之后會相應另外一個請求對象S發給SIP服務器,SIP服務器把S發給Web服務器,Web服務器把S發給瀏覽器。在進行外上面的步驟后,瀏覽器和SIP服務器開始進行打洞,密鑰協商,媒體會話等操作。會話關閉的時候流程和建立鏈接的時候類似。這里不再復述。
采用Jingle協議實現WebRTC的功能:
整個過程和SIP模式相比除了Web服務器A和Web服務器B之間采用的協議不同,其他的基本相似。這里不再詳細說明。
來自:https://blog.wilddog.com/?p=1821