WebRTC基礎實踐-1.WebRTC簡介

鐵錨發表於2018-10-14

WebRTC 是一個開源的實時通訊專案, 主要目標是對Web/原生App平臺上的語音、視訊、以及資料傳輸等實時通訊提供支援。

WebRTC 主要包括以下 JavaScript API(點選連結可檢視相關demo)。

WebRTC的平臺支援情況

目前, PC版和Android版的 Firefox、Opera 和 Chrome 瀏覽器都支援WebRTC。 此外、iOS和Android的一些原生App也支援WebRTC。

譯者注: 國內使用量巨大的360瀏覽器、搜狗瀏覽器相容性基本和Chrome一致。當然, 推薦使用最新的版本(當前時間: 2018年6月28日)。

信令(signaling)

WebRTC 通過 RTCPeerConnection 在瀏覽器之間進行流資料傳輸, 但還需要一種機制, 來協調通訊以及傳送控制指令, 這個過程就叫做信令控制. WebRTC 沒有規定具體使用的協議或方法。

在本教程中, 我們使用 Socket.IO 來傳遞訊息, 當然也可以使用 其他實現

STUN和TURN簡介

WebRTC 是基於點對點(peer-to-peer)網路設計的, 在理想環境中, 雙方通過路由器進行直連. 但在現實世界中, 兩個客戶端之間, 需要穿透防火牆以及 NAT 閘道器, 如果直連失敗, 則需要回退降級。所以, 為了應對各種複雜的網路環境, WebRTC API 需要使用 STUN 伺服器的幫助, 來獲取雙方的公網IP, 如果對等連線失敗, 則需要使用 TURN 伺服器作為中繼伺服器. 現實世界中的網路環境是什麼樣子的呢, 請參考 WebRTC in the real world

WebRTC的安全性

WebRTC的所有元件強制加密. 相關的JavaScript API也只能在安全的域名中使用(即 HTTPS 或者 localhost). 但WebRTC標準沒有指定信令機制, 所以需要開發者確保使用了安全傳輸協議。

更多資訊和資源, 請參考: http://webrtc.org/start

相關詞彙對照:

  • capture : 獲取、抓取
  • audio : 音訊
  • video : 視訊
  • stream : 流
  • data stream : 資料流
  • record : 錄製、記錄
  • signaling : 信令
  • Encryption : 加密
  • relay server : 中繼伺服器
  • peer-to-peer: 點對點網路

原文連結: https://codelabs.developers.google.com/codelabs/webrtc-web/#0

翻譯人員: 鐵錨 – https://blog.csdn.net/renfufei

翻譯日期: 2018年06月28日


相關文章