使用webrtc实时交流(1)

本系列文章翻译自webrtc官网链接codelab。
https://codelabs.developers.google.com/codelabs/webrtc-web/#0
本人翻译水平有限,本着翻译过程就是学习过程的目的进行翻译。若有不当之处,欢迎指出。

介绍

webrtc是一个开源项目,提供web层、(native)源码层API,实现实时的音频、视频、数据交流。
JavaScript主要有以下API,点击链接查看例子
  • getUserMedia():获取音视频
  • MediaRecorder:录制音视频
  • RTCPeerConnection:建立媒体流
  • RTCDataChannel:传输用户数据

有意思的例子2,能录像还能把录像下载。

webrtc可以使用在哪里

安卓和桌面系统的Firefox, Opera, Chrome。在ios和安卓上支持native apps(原生开发)。

信令传输(signaling)

webrtc使用RTCPeerConnection在浏览器间传输媒体流,但同时还需要一个协调沟通,传输控制消息的机制,这个流程叫signaling。在codelab这里我们使用Node实现,但还有很多其他选择

什么是STUN和TURN

webrtc基于p2p实现,用户间尽量选择最直接的路由连接(例如局域网)。但是现实世界中的网络充满了NAT网关和防火墙,在复杂的网络情况下,p2p连接不能保证连接成功,所以需要后手。STUN服务器提供这样一种容错机制,通过webrtc APIS交换连接双方所有的ip地址,尽可能的尝试连接。一旦所有的连接尝试都不成功,TURN作为一个中转服务器的角色保证传输。详细可看下面链接:
在互联网中的webrtc

webrtc安全吗

webrtc的组件都是加密的(估计指的是web api),只能通过https或者localhost调用。信令传输是你自己定义的,安不安全关我鸟事,你可以选择安全性高的协议。

你可能感兴趣的:(webrtc)