進擊的WebRTC 我們為什麼需要它?

2021-09-11 09:18:42 字數 1634 閱讀 4662

有人說 2017 年是 webrtc 的轉折之年,2018 年將是 webrtc 的爆發之年。去年,webrtc 1.0 標準草案出爐,並將於今年正式發布。與此同時,越來越多的瀏覽器和廠商都開始對它進行廣泛的支援,webrtc 即將成為網際網路的基礎設施了。

越來越多的創業者都在思考如何將線下互動的場景搬到線上,從而打造下乙個風靡全民爆款的應用。

在此之後,google 又將在 gtalk 中用於 p2p 打洞的開源專案 libjingle 融合進了 webrtc。所以目前 webrtc 提供了在 web、ios、android、mac、windows、linux 在內的所有平台的 api,保證了 api 在所有平台的一致性。使用 webrtc 的好處主要有以下幾個方面:

而直播作為當下的熱點應用,肯定少不了對於 webrtc 的使用,而這又要提到 rtmp。

目前來看,webrtc 已經獲得了越來越多瀏覽器廠商及相關技術廠商的支援,應用的前景將會更加廣闊。

但是受限於 webrtc 自身的一些缺憾,一般開發者都不是直接完全使用 webrtc,而是根據實際場景基於 webrtc 進行二次開發。webrtc 本身並不是****,不可能一套**以及介面可以解決所有問題。

webrtc 是乙個非常優秀的專案,但如果直接拿來使用也存在以下問題。

第一,webrtc 使用的是對點對傳輸,雖然節約了伺服器資源的開銷,但實際使用時也帶來了傳輸質量的問題,比如跨國以及跨運營商網路之間的傳輸質量往往很難保證,雖然 webrtc 有優秀的端對端質量控制演算法,但在錯綜複雜的網路條件下,表現也很難讓人滿意。

第二,webrtc 在移動端的表現也很難讓人滿意。早期由於缺少對於 h.264 編解碼器的支援,使得移動端很長一段時間只能使用 vp8 軟體編譯碼,導致在中低端手機上的表現較差,加上安卓自身碎片化的屬性,如果不針對不同機型做適配,很難有統一的使用者體驗。

第三,webrtc 是為 1 對 1 通訊場景設計的,如果要實現多人的場景,還是需要借助服務端方案。即使當前有很多開源的 webrtc 伺服器實現,乙個流**中轉伺服器或者混流伺服器的部署以及維護也是非常複雜的。

第四,在 web 端需要面臨不同瀏覽器之間的相容性問題。雖然使用 adapterjs 可以解決不同瀏覽器之間的介面適配問題,但除此之外依然要面臨不同瀏覽器行為不一致的問題。可以說如果 webrtc 如果直接拿過來商用的話,幾乎是不太可能的,當下普遍的解決方案是自研,根據自身的業務場景進行二次定製開發,或者更簡單一點使用第三方 sdk。

未來在實時通訊領域,webrtc 依然是非常重要的一塊拼圖。

一直以來,webrtc 都缺少測試工具。在去年年底,google 推出了 kite 開源專案,用於幫助開發者檢測 webrtc 應用在不同瀏覽器的互通性。對於標準化社群來講,下一步工作主要會圍繞提供一組更完備的測試套件,不僅可以幫助開發者測試 webrtc 應用在 web 端、native 端的互通性與體驗,還有助於保證各廠商瀏覽器 webrtc 介面功能的一致性,並逐步完善 webrtc 缺失的功能。

在相關技術方面,quic 也進入更多人的視野。對於 webrtc 來講,quic 可以加速資料通道的連線(至少原理上可行),還可以完全替代 sctp。但問題是,目前支援 quic 的瀏覽器只有 chrome 和 opera。

另一方面,各瀏覽器也在持續不斷地修復問題,對不同硬體裝置以及系統平台進行適配,保證 webrtc 能穩定執行於除主流機型、系統版本以外,更多的裝置上。

HTTPS埠443保護什麼,為什麼我們需要它

https為在瀏覽器和伺服器之間共享的資料或敏感資訊提供安全性。它通過加密交換和授予隱私來確保您的isp 或網路上的任何其他人 不會閱讀或干擾會話。但是請不要誤解此安全鎖定功能。它確實可以加密通訊通道,但是不能保證攻擊者不會管理您連線的 此外,如果您的站點上存在薄弱環節,黑客將利用它們並破壞您的資料...

直播為什麼不使用WebRTC?

webrtc直播現狀 現在使用webrtc技術的公司越來越多了,如果你密切關注直播領域的話,你會發現乙個很有趣的變化,隨著直播業務的增長,傳統的流 由於延時大不能滿足於各種應用場景的需求,一些可替代性的解決方案紛紛登場,而webrtc是這些技術解決方案中的佼佼者。目前很多數的公司使用webrtc做直...

我們為什麼加班

4 在方法上,持續學習。方法總比問題多,我們只有不斷學習,不斷提高自己的知識和能力,才能不斷使用更好的方法來完成任務,好的方法的標準就是更好的生產力。5 在執行上,提高軟體質量。這個涉及知識 技術 方法學等各個方面,也涉及到軟體開發的各個過程,不僅包括設計 的質量,同樣包括文件的質量。軟體質量提高了...