这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天
重要API
WebRTC原生APIs文件是基于WebRTC规格书撰写而成,这些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三类。
Network Stream API
- MediaStream:MediaStream用来表示一个媒体数据流。
- MediaStreamTrack在浏览器中表示一个媒体源。
RTCPeerConnection
- RTCPeerConnection:一个RTCPeerConnection对象允许用户在两个浏览器之间直接通讯。
- RTCIceCandidate:表示一个ICE协议的候选者。
- RTCIceServer:表示一个ICE Server。
Peer-to-peer DataAPI
- DataChannel:数据通道(DataChannel)接口表示一个在两个节点之间的双向的数据通道。
安全性
漏洞
2015年,TorrentFreak报告了一个WebRTC的安全漏洞,该漏洞会致使安装有WebRTC的用户泄露真实IP,即使用户已经使用虚拟私人网路 。
解决方案
Mozilla Firefox:在地址栏输入“about:config”,搜索“media.peerconnection.enabled”并双击将值改为“false”,WebRTC将被关闭。
Google Chrome:在谷歌应用商店安装谷歌官方扩展“WebRTC Network Limiter”。
Opera:
其它方案
uBlock Origin:安装uBlock Origin并在设置中启用“避免WebRTC 泄露本地IP地址”可以避免本地IP泄露。但需注意的是,该方案不适用于Firefox 41(或更低)、uBlock Origin 1.3.3(或更低)版本用户。
隐私权:安装隐私獾并在设置中启用”避免 WebRTC 泄露本地 IP 地址 “可以获得额外防护,但未知具体效果。
WebRTC 能做什么?
- 能用于音视频实时互动
- 能用于游戏、即时通讯、文件传输等等
- 它是一个百宝箱,传输、音视频处理(回音消除、降噪等)
学习WebRTC的过程中掌握什么
-
音视频设备的访问与管理
-
音视频数据的采集
-
数据的传输与实时互动
-
WebRTC的整体工作机制
-
音视频设备的访问与管理
-
音视频数据的采集
-
数据的传输与实时互动
-
WebRTC的整体工作机制
-
音视频设备的访问与管理
-
音视频数据的采集
-
数据的传输与实时互动
-
WebRTC的整体工作机制
学习WebRTC思路
(1). 学习NodeJS的基本使用,尝试搭建一个简单的Web服务器并实现简单的HTTP服务。
(2). 学习JavaScript,了解并掌握其基本的使用方法,为后续开发及完善Web服务做技术铺垫。
(3). 了解音视频设备相关的Web API,尝试使用MediaDevices实现音视频设备的访问,包括摄像头、麦克风及屏幕采集。
(4). 学习使用Socket.IO,尝试使用Socket.IO实现简单的聊天室,为后续开发WebRTC信令服务器做技术铺垫。
(5). 了解和学习使用SDP,并使用WebRTC的Web API实现本地的1v1视频互通。
(6). 搭建STUN/TURN服务器,使用ICE框架及Socket.IO实现WebRTC正式的1V1连麦
(7). 实现WebRTC的移动端开发,做到浏览器和手机客户端能进行连麦操作。