0
点赞
收藏
分享

微信扫一扫

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​​: 点对点网络

翻译日期: 2018年06月28日


举报

相关推荐

0 条评论