学习WebRTC(3)| 青训营笔记

229 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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的移动端开发,做到浏览器和手机客户端能进行连麦操作。