蘋果終於入夥 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被幾大瀏覽器統一支持,應用的成長和發展是必然的。未來,無論在怎樣的場景下,實時通信都會成爲人們的一個默認選擇,無限縮短人與人之間的距離。而用戶會越來越多地瞭解和熟悉這種使用模式,開發者也會越來越多地理解其中的門檻,以及質量保障在實時通信領域的價值。”最後,趙斌如此總結道。

相關資源:

作者:唐門教主

發佈了216 篇原創文章 · 獲贊 114 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章