5分鐘了解WebRTC應用開發
譯文【51CTO.com快譯】簡單地說,WebRTC是一種在瀏覽器和移動應用程序之間提供點對點通信的技術。它被稱為網絡實時通信,是指開源項目,允許音頻、視頻和數據的傳輸。
對于WebRTC開發人員來說這是一項簡單而復雜的技術。簡單性的本質歸結為易于實現。可以使用5到10行代碼來組織兩個瀏覽器之間的點對點視頻通信。
不過,當我們與技術打交道時,總是會有一個“但是”。因為作為后端開發人員必須確保解決方案在不同的網絡中工作。
什么是WebRTC?
作為谷歌于2011年發布的一個開源項目,WebRTC提供了基于API的web瀏覽器和移動應用程序之間的通信,包括音頻、視頻和數據的傳輸。消除了對本地插件和應用程序安裝的需求,使這些連接變得更加友好,并得到了所有主要瀏覽器和移動操作系統的支持。
在過去的幾年中,WebRTC在科技界被廣泛采用。Facebook,Amazon和Google都是實施WebRTC來使其Web應用程序更快,更可靠,更安全的重要技術公司。
WebRTC特性也提供了現成的解決方案,可以很容易地與其他軟件集成。
正如前面提到的,WebRTC的關鍵特征是它是一種簡單而復雜的技術。簡單性的本質歸結為易于實現,只需5到10行代碼就可以組織兩個瀏覽器之間的點對點視頻通信。該技術的復雜性與WebRTC的特殊性有關,它必須適應不同的瀏覽器,如果不能正確工作,則很難進行配置。此外,為了獲得所需的結果,也應該了解STUN、TURN和NAT。
STUN是一套標準化的方法,包括一種網絡協議,用于在實時語音、視頻、消息和其他交互式通信應用中穿越網絡地址轉換(NAT)網關。
當我們需要連接兩個沒有外部IP地址的瀏覽器時,必須使用STUN。兩者都連接到服務器并找出其IP。瀏覽器交換它們相互關聯的端口。
TURN做了幾乎相同的事情。它通過自身發送流量。這個流量沒有以任何方式被修改或改變。這種方法允許我們在TCP(比UDP更可靠但更慢的協議)上工作時連接兩點。值得注意的是,大約15%的呼叫沒有TURN就不能發出。
現在,你已經對WebRTC這項技術有了一些了解。此外,我們將概述該技術的優缺點,WebRTC解決方案的例子,以及高要求的WebRTC應用程序。默認情況下,這些應用程序基于點對點通信。如果我們需要組織群呼和直播,就必須使用作為協議客戶端的服務器。
WebRTC如何工作?
WebRTC的主要重點是提供參與者之間的實時音頻和視頻通信,參與者使用Web瀏覽器開始對話,彼此定位并繞過防火墻。
WebRTC利用嵌入在瀏覽器中的JavaScript API和HTML5。WebRTC應用程序的典型功能如下:
- 發送和接收流音頻和視頻。
- 檢索使用WebRTC API向其他客戶端發送和接收數據所需的網絡配置數據,例如IP地址,應用程序端口,防火墻和NAT(網絡地址轉換器)
- 打開/關閉連接并報告錯誤。
- 傳輸媒體數據,例如圖像分辨率和視頻編解碼器
為了發送和接收數據流,WebRTC提供了以下可在Web應用程序中使用的API:
- RTCPeerConnection用于音頻和視頻傳輸,加密和帶寬配置
- RTCDataChannel用于傳輸通用數據
- MediaStream,用于從數碼相機,網絡攝像頭,麥克風或共享桌面等設備訪問多媒體數據流
Internet工程任務組和Web實時通信工作組目前正在開發一套在軟件中使用WebRTC的標準。
WebRTC技術的優缺點
WebRTC的主要優點是:
- 有適用于所有平臺的實現。
- 使用現代音頻和視頻編解碼器可促進高質量的通信。
- 安全和加密的DTLS和SRTP連接。
- 有一個內置的內容獲取機制(桌面共享)。
- P2P =端到端加密。
- 瀏覽器直接同意。
- 基于HTML5和JavaScript實現管理界面的靈活性。
- 開源。
- 多功能性:只要瀏覽器支持WebRTC,基于標準的應用程序就可以在任何OS上正常運行。
WebRTC的條件缺點是其維護費用高,這與需要強大的服務器有關。。
正如文章中已經提到的,Web實時通信的基礎是視頻聊天。包括音頻和視頻通話、數據共享在內的服務是WebRTC技術的主要應用類型,最著名的例子是WhatsApp、谷歌Hangouts和Facebook Messenger。但是如果我們把所有的業務案例和WebRTC的例子拼湊在一起,我們會發現有很多使用領域。
該技術在遠程醫療、監控和遠程監控、在線教育、物聯網、虛擬現實游戲、流媒體、語音通信網絡游戲、應急響應等方面都有很高的要求。
WebRTC的未來:趨勢和預測
根據市場研究報告,到2026年,全球WebRTC市場規模預計將達到165.705億美元。讓我們回顧一下,2016年使用WebRTC的產品的全球市場價值為107億美元。WebRTC的轉折點出現在2017年,當時微軟Edge和iOS Safari 11開始支持它。
目前,谷歌致力于網絡實時通信的發展。因此,WebRTC的未來是很有前景的。通過評估谷歌在該技術上的投資,很容易驗證這一點。所有這些都針對代碼優化以及功能集的擴展或改進。
2021-2022年與WebRTC相關的主要趨勢是:
- 作為W3C標準的WebRTC將迅速發展。
- WebRTC提供的會議規模將會增加,這將影響解決方案的復雜性。值得注意的是,會議中有1000個用戶是一個真正的挑戰,需要新的架構。
- 其他的工具,如背景模糊和噪聲抑制之類已經開發,并將在未來改進,并且這些工具與Chrome中的WebRTC實施相關。
- 與用戶隱私和應用程序安全相關的大量活動將被完成。
- VP9和AV1編解碼器將實現現代化。
WebRTC的未來與新市場中出現的技術有關。而且,只要WebRTC是W3C標準,任何人都可以影響其發展,這意味著廣闊的前景。
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】