webRTC概述
WebRTC--- `Web browsers with Real-Time Communications (RTC)`
WebRTC是一個開源項目,可以在`Web`和本機應用程序中實現音頻,視頻和數據的實時通信。
在Firefox,Opera和Chrome桌面和Android上。WebRTC也可用於iOS和Android上的本機應用程序。
有了WebRTC ,不需要任何插件或第三方軟件來處理典型問題,例如數據丟失、連接中斷和NAT遍歷。
webRTC 適用領域
- 實時營銷
- 實時廣告
- 后台通信( CRM、ERP、SCM、FFM )
- HR管理
- 社交網絡
- 約會服務
- 在線醫療咨詢
- 金融服務監控
- 多人游戲
- 實時廣播
- 在線教育
webRTC采用的協議
實時數據通信意味着兩個用戶設備之間的快速連接。公共連接采用視頻或音頻序列幀的形式,將其一每秒30至60次的速率傳輸給另一個用戶設備,以獲得良好的質量。因此,必須了解,快速發送最新的數據幀比確保每個單個幀都到達更重要。
這就是為什么WebRTC應用程序可能會錯過某些幀,以便保持良好的連接速度。
這也就是WebRTC應用程序使用UDP(用戶數據報協議)作為傳輸層協議的原因。
但是為什么建立UDP是不可靠的傳輸層,因為無法確定以下狀態:
- 數據的順序
- 數據的交付狀態
- 每一個數據包的狀態
音頻和視頻WebRTC連接不是最可靠的,而是在兩個用戶設備之間傳輸最快的。在可以承受的范圍內保證數據的快速傳輸,這意味着UDP是音頻和視頻流應用程序的最佳選擇。
webRTC體系架構
這張圖來源於webRTC入門,應該每個人最開始接觸webRTC時都會知道架構圖,它描述了RTCPeerConnection的作用。
圖中可以看出一共三個不同的層:
- web開發人員的API:包括RTCPeerConnection、RTCDataChannel和 MediaStrean對象
- 瀏覽器廠商的API
- 供瀏覽器廠商以hook方式復寫的API
傳輸組件允許在不同類型的網絡中建立連接,而語音視頻引擎是負責將音頻視頻流從聲卡和攝像機傳輸到網絡的框架。對於web開發人員來說,最重要的部分是WebRTC API。
下一篇將講解webRTC API。