WebRTC基礎實踐-1.WebRTC簡介
WebRTC 是一個開源的實時通訊專案, 主要目標是對Web/原生App平臺上的語音、視訊、以及資料傳輸等實時通訊提供支援。
WebRTC 主要包括以下 JavaScript API(點選連結可檢視相關demo)。
-
getUserMedia()
: 獲取使用者裝置的音訊和視訊. -
MediaRecorder
: 錄製音訊和視訊. -
RTCPeerConnection
: 流式傳輸兩個客戶端之間的音訊與視訊. -
RTCDataChannel
: 在兩個客戶端之間傳輸資料流.
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日
相關文章
- WebRTC基礎使用Web
- JavaScript基礎簡介JavaScript
- JavaFX基礎:1: 簡介Java
- Oracle基礎工具簡介Oracle
- GraphQL 基礎實踐
- CSS基礎知識簡介CSS
- Spring AOP基礎簡介Spring
- maven簡介及基礎使用Maven
- WebSocket簡介與最佳實踐Web
- 《Python機器學習實踐》簡介Python機器學習
- 實踐證明了基礎!
- Redux 基礎與實踐Redux
- GOLANG簡介與基礎語法Golang
- web workers簡介(一)基礎使用Web
- iptables基礎原理和使用簡介
- C語言基礎-C簡介C語言
- 《MySQL 8 DBA基礎教程》簡介MySql
- CSS基礎:CSS變數簡介CSS變數
- d3-系列-基礎簡介
- WebRTC – Agora (聲網)簡介與實現音視訊通話WebGo
- WebRTC 架構優化及實踐Web架構優化
- OpenGL簡單介紹及實踐
- MySQL基礎語法實踐MySql
- C#基礎程式設計——簡介及基礎語法C#程式設計
- python基礎學習-socket簡介Python
- scrapy框架簡介和基礎應用框架
- TypeScript基礎入門-函式-簡介TypeScript函式
- JAVA基礎之六-Stream(流)簡介Java
- Tekton 設計簡介 及 實踐
- POP簡單介紹與使用實踐
- 音訊處理開源庫webrtc(1)簡介音訊Web
- WebRTC:資料傳輸相關協議簡介Web協議
- React 應用實踐(基礎篇)React
- RSA演算法基礎->實踐演算法
- Redis從入門到高可用,分散式實踐(1)- 基礎介紹Redis分散式
- 【Python基礎知識】Django框架簡介PythonDjango框架
- 【機器學習基礎】半監督學習簡介機器學習
- 圖資料庫基礎簡介 -KDnuggets資料庫