當前位置:
首頁 > 科技 > 蘋果終於入伙 WebRTC,新一代移動Web應用爆發路上還有哪些坑?

蘋果終於入伙 WebRTC,新一代移動Web應用爆發路上還有哪些坑?

在剛剛落幕的 WWDC17 上,蘋果為我們帶來了一個不小的驚喜 —— 其瀏覽器內核WebKit將正式支持 WebRTC,而未來基於 WebKit 內核的蘋果瀏覽器,比如macOS High Sierra、iOS 11 中的 Safari 瀏覽器和Safari 技術預覽版 32,都將使用到 WebRTC 技術。

此消息一出便引得無數 WebRTC 開發者為之興奮,更表示其將改變當前的 P2P 視頻通話技術格局。這是為什麼呢?在此,我們需要先簡單地了解一下 WebRTC,其全稱為 Web Real-Time Communication(網路實時通信),是一項能夠讓瀏覽器支持實時語音會話或視頻對話的技術。這一技術前身為 GIPS,本是由 Global IP Solutions 公司研發,2010 年,Google 以 6820 萬美元的價格將該公司收購併將 GIPS 更名為 WebRTC,次年 5 月正式將其開源。

彼時,我們所能想到的只是因為 Google的推動,這樣一項能夠在瀏覽器內部進行實時音頻和視頻通信的技術讓 Web 中的實時通訊成為可能。但同時,也有諸多開發者在質疑 WebRTC 是否會曇花一現,畢竟一直以來,雖然 Chrome、Firefox、Opera 等市面上主流的瀏覽器均已加入 WebRTC 大本營,但蘋果的 Safari 和微軟的 IE 卻都不支持。

如今,Safari 即將在最新版本中集成WebRTC,其對於整個實時通信領域而言,究竟意味著什麼?對於 WebRTC 開發者來說,又將有著怎樣的改變?我們帶著種種疑問,請教了網路實時通信領域的資深專家 —— 聲網 Agora.io 創始人兼 CEO 趙斌,從 WebRTC 的發展歷程談起,詳細剖析 WebKit 終於支持 WebRTC 將帶來怎樣的變化。

追本溯源:為解決在瀏覽器上進行視頻通話而生的 WebRTC

在 2011 年以前,瀏覽器之間要想實現實時通信,需要私有技術,其中大部分都是通過插件和客戶端來安裝使用。對於許多用戶而言,插件的下載、安裝和更新是一個複雜、繁瑣和容易出錯的操作。而對於開發人員來說,插件的調試、測試、部署、錯誤修復和維護同樣困難重重,且不提還涉及到一些受版權保護的技術,整合相當複雜。再者,很多時候,服務提供商很難說服用戶去安裝插件。

但這一兩頭吃力還不討好的局面就這樣被Google 將 WebRTC 項目開源所打破。2011 年,WebRTC 基於 BSD 協議開源,同年,W3C 啟動 WebRTC 計劃,讓 WebRTC 成為了 HTML5 標準的一部分(目前,該規範還在開發中)。

由此,瀏覽器廠商將 WebRTC 內建在瀏覽器中,使得Web 應用研發人員能夠通過 HTML 標籤和 JavaScript API 即可實現 Web 音視頻通信功能。在 WebRTC 的官網上,Google 如此表述道:

互聯網成功的關鍵因素之一,便是一些如HTML、HTTP 和 TCP/IP 等的核心技術是開放和標準化的。目前,在瀏覽器實時通信領域還沒有免費、高質量、完整的解決方案,而 WebRTC 正是這樣的技術。

該技術包含了使用 STUN、ICE、TURN、RTP-over-TCP的關鍵 NAT 和防火牆穿透技術,並支持代理。通過瀏覽器,WebRTC 把通訊雙方的信令狀態直接映射到 PeerConnection 裡面來抽象信令處理,這樣,開發人員按不同的應用場景選擇不同的會話協議,比如 SIP、XMPP/Jingle 等。截至目前,該技術的使用已經超過了 8 年,集成了最佳的音頻、視頻引擎,並被部署到數以百萬的終端中,同時這些技術 Google 不收取任何費用。

從最初的為了解決瀏覽器上視頻通話而誕生,WebRTC已經發展到可以實現在瀏覽器之間進行任意數據的通信。其中,Chrome、Firefox、Opera 對於 WebRTC 的支持已較為成熟,而微軟於 2014 年提出了 ORTC(對象 RTC,也有人稱之為 WebRTC 1.1),希望在對 Google 的 WebRTC 提案稍作修改的基礎上,也提供支持。目前,最新版本的 Microsoft Edge 已經支持 ORTC。

而對於蘋果官方終於宣布「WebRTC 將在 Safari 11 上支持」,趙斌如此評價道:「目前,WebRTC 已經有了 1.0 版本,暫時還是草案。但是我們可以看到的是,WebRTC 在網路抗丟包處理、視頻引擎(比如 H.264 Codec 支持成熟度)等方面,還是需要加強的。1.0 之後的 1.1 版本,考慮到了和 ORTC 的結合,讓 WebRTC 可以在微軟瀏覽器上實現,這是 Google 和微軟同時推動的階段性進展。實際上,Google 的 WebRTC 從一開始的計劃就是能支持所有的主流瀏覽器。之前最大的障礙是微軟瀏覽器和蘋果瀏覽器,但是通過 Google 的推動,這些實際上都在發生變化。而 Safari 在 iOS 11 中將支持 WebRTC,既是行業里最後一個重要的瀏覽器加入這一潮流,也是這一進程的重大勝利。這在 WebRTC 的發展上是里程碑性的事件,將會極大地推動 RTC 技術在各種應用網站上的普及。當然,目前蘋果對 WebRTC 的支持還比較粗糙,需要更多的時間成熟,並解決互通上的更多問題。微軟則還需要在標準的一致性上參與行業的討論,縮小和拉近在互通性方面的差距。」

那麼,Safari 終於實現對於 WebRTC 的支持,究竟意味著什麼?

一直以來,WebRTC 開發者總被一個無法逃避的陰影所籠罩,那就是來自用戶的「什麼時候微軟和蘋果的瀏覽器支持呢?」的疑問,每每此時,卻只能給出讓用戶使用 Chrome 和 Firefox 的解決方案。而在移動端,事情變得更加複雜,因為在 iOS 上,使用原生是唯一的辦法,也由此增加了Swift/Objective-C 的開發成本,儘管 React Native能夠構建支持 WebRTC 的 Android 和 iOS 應用讓這一狀態有所改善,但卻無法從根本上解決問題。

而隨著支持 WebRTC 的 iOS 版 Safari 的到來,意味著開發者們可以提供一個在 Web 端、移動端均可運行的響應式網站來實現 WebRTC 通話。對於開發者個人而言,也無需為了完成項目而絞盡腦汁地成為 Objective-C、Swift 或 React Native 方面的專家,通過 JavaScript 即可實現這樣一個精細複雜的網路電話應用,由此開發成本將得到大幅降低。

在談到 WebRTC 移動端實現時,趙斌表示:「在 Safari 支持 WebRTC 後,過去只能在諸如Chrome 瀏覽器之間實現的音視頻通話,現在在 Safari 以及 Chrome 與 Safari 之間實現了,其影響一定是積極的。可以預見,很多網站及開發者將會更加認真地考慮將這類功能添加至網站及應用中。」

仍有缺憾:WebRTC即將爆發,但成功之路暗坑無數

儘管 WebRTC 應用已經如此廣泛,但其也並非完美,比如在穩定性、P2P 連接率、呼叫成功率、網路抗丟包性能等諸多方面,都還有很大的提升空間。所以到目前為止,大規模單純使用 WebRTC 成功的產品還是鳳毛麟角,且幾乎都是在網路和設備性能非常成熟的美國,比如 Facebook Messenger、Google Hangouts。

且 WebRTC 是基於瀏覽器上的技術,大部分都是在瀏覽器中應用。而使用 WebRTC 在移動端上進行開發,差別還是很大。雖然可以實現,但門檻會很高,難度也會很大。對絕大多數開發者來說,要用 WebRTC 在移動端實現良好體驗,不是一件容易的事情,會遇到非常多的坑。在進行 WebRTC 開發之前,開發人員及其團隊需要根據自身的情況,來決定是自主開發還是使用第三方 SDK。

對此,趙斌與我們分享了他的經驗:「實時通信是一項實現功能容易,但做好很難的技術。我曾在 WebEx 和 YY 工作將近 20 年,非常清楚 RTC 技術的坑。也知道對於一個開發者而言,要自己在 App 和瀏覽器中實現實時音視頻通話,是非常麻煩且累人的事情。很多開發者最容易掉進的坑,就是忘了如果想要用好實時通信技術,歸根結底還是在於使用過程中的質量保障,而非研發時寫的那些功能代碼。」

也正因如此,趙斌和他的團隊對 WebRTC在質量保障方面進行了擴展,比如為了解決 WebRTC 在弱網路環境下抗丟包、通話連通率等問題,在全球部署了虛擬通信網 SD-RTN(Software Defined Real-time Network),有近 100 個數據中心,同時,為開發者提供一個極簡 SDK,幫助其在任何 App、網站上,都能實現高質量的音視頻通話、全互動直播。據趙斌介紹,目前這款 SDK 已經被嵌入到了超過 5 億的終端設備上,僅僅花了1年左右的時間,全球範圍內對於實時通信質量保障的強烈需求可見一斑。

總結:實時通信技術無所不及的應用場景

WebRTC 一直是推動 RTC 實時通信技術發展的最主要力量,讓實時通信技術能夠在互聯網很多行業里得到廣泛應用。而近兩年來,我們也看到了實時通信技術在很多領域正在驅動非常多的創新應用場景,比如去年大熱的互動直播,主播與觀眾隨時連麥互動、不同房間的主播連麥聊天等,以及當下正在流行的狼人殺,包括語音、視頻甚至是輪麥視頻狼人殺,這些場景都是基於 RTC 創造出來的。另外,在 AR/VR 和 AI 等新技術領域,也有諸多結合,如視頻通話時的動態濾鏡貼紙、戴 VR 眼鏡和虛擬世界裡的朋友聊天等等。當然,對於傳統行業,比如企業協作、金融、客服等領域,都有可能藉助 RTC 技術打破地域界限,讓更多人可以做居家客服、居家辦公 SOHO 等。

「我們認為,隨著WebRTC被幾大瀏覽器統一支持,應用的成長和發展是必然的。未來,無論在怎樣的場景下,實時通信都會成為人們的一個默認選擇,無限縮短人與人之間的距離。而用戶會越來越多地了解和熟悉這種使用模式,開發者也會越來越多地理解其中的門檻,以及質量保障在實時通信領域的價值。」最後,趙斌如此總結道。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

C+中命名空間的五大常見用法
十圖詳解TensorFlow數據讀取機制
資料庫壓縮技術的過去與未來,另又有公司的資料庫被工程師刪了
跳過肉眼?全面解讀Google最新發布的JPEG壓縮演算法Guetzli
中國最強的人工智慧學術會議來了

TAG:CSDN |

您可能感興趣

用雙腳來實現移動,3dRudder將支持PSVR
Apple Watch終於能用中國移動eSIM了,但優惠期咋被移動「打折」了?
谷歌推出MobileNetV2,為下一代移動設備CV網路而生
移動VR的時代來了!HTC Vive Focus Plus現場體驗
Essential Phone 停止銷售,正在研發「下一款移動產品」
四分之三移動應用發現安全漏洞,Android、iOS一樣多!
不只有Core i9,Intel新發布的第八代移動處理器還有這些
Apple Watch 用戶有福了!中國移動將試行eSIM一號雙終端業務
LoRa Alliance?將在上海世界移動大會上展示數百萬採用LoRaWAN?連接的設備和諸多中國應用
為什麼我們選擇 Flutter 開發移動應用?
Admix的Oasis可讓你在VR應用間移動 無需離開虛擬世界
iPhoneXS爆新故障打蘋果的臉:移動網路與WIFI接收差
還在用移動硬碟?你OUT了!一秒1GB的NVMe移動盤了解下
e 絡盟推出GraspIO Cloudio—一款Raspberry Pi擴展板,配有移動平台,適用於端對端物聯網開發和部署
Flutter 是移動應用程序開發的未來?
Discuz API JSON 適用於IOS及Android移動端開發
支持 Apple Watch,移動 eSIM 一號雙終端免費體驗活動將至
三星移動總裁:還沒準備好Galaxy Fold就將它推出
釋放移動開發者無限潛力——HUAWEI Developer Day上海站回顧
Valve推出全新Steam移動端聊天應用