WebRTC介紹-1

WebRTC是網頁實時通信(Web Real-Time Communication)的縮寫,WebRTC擴展了網頁瀏覽器模型。通過它就可以和其他瀏覽器進行P2P通信,進行實時語音對話或視頻對話。

萬維網聯盟(W3C)和互聯網工程工作小組(IETF)加入並制定JavaScript API,通過標準HTML5標籤和底層通信協議的制定,來提供瀏覽器之間穩定的可靠的通信。

WebRTC(Web Real-Time Communication)項目的最終目的主要是讓Web開發者能夠基於瀏覽器(Chrome\FireFox\...)輕易快捷開發出豐富的實時多媒體應用,而無需下載安裝任何插件,Web開發者也無需關注多媒體的數字信號處理過程,只需編寫簡單的Javascript程序即可實現,W3C等組織正在制定Javascript 標準API,目前是WebRTC 1.0版本,Draft狀態;另外WebRTC還希望能夠建立一個多互聯網瀏覽器間健壯的實時通信的平臺,形成開發者與瀏覽器廠商良好的生態環境。同時,Google也希望和致力於讓WebRTC的技術成爲HTML5標準之一,可見Google佈局之深遠。

WEB架構

經典的web架構基於C/S模型,即瀏覽器向服務器發送http(Hypertext Transfer Protocol)請求,服務器返回請求結果。服務器可以在html中嵌入JavaScript代碼發回給瀏覽器,JavaScript可以在瀏覽器中執行。

WebRTC架構

WebRTC通過在瀏覽器間引入P2P通信模型擴展了C/S模型。最普遍的WebRTC模型是會話發起協議(Session Initiation Protocol)如下圖:

上圖是兩個不同的web應用,它實現了不同web應用之間的p2p通信。Signalling-信令:用來發送建立連接或終止連接的消息。

最常見的WebRTC模型是兩個瀏覽器運行相同的web應用,只需要一個web服務器,如下圖。

瀏覽器端的WebRTC

一個WebRTC網頁應用在瀏覽器端通過執行標準WebRTC API寫成的程序 ,通常爲html和JavaScript混合代碼。WebRTC API提供了很多函數集,像連接管理(P2P),加密解密,媒體控制,防火牆,NAT穿透 等等。

簡單示例

假設Alice和Bob是兩個普通用戶,他們都打開瀏覽器連接web服務器並下載了web頁面。其中html中的一段JavaScript代碼通過http或WebSocket和服務器保持連接。

當Alice點擊頁面上的一個按鈕來開始撥通Bob時,執行流程圖如下:

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