WebRTC 一对一视频服务搭建

WebRTC背景

WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在GoogleMozillaOpera支持下被纳入万维网联盟的W3C推荐标准。

客户端

创建RTCPeerConnection实例->发送candidate->创建offer->交换offer->添加媒体流

客户端主要工作简单来看就是三个交换,交换ice、交换offer、交换流。通过代码来看:

推荐阅读MDN教程

推荐博客 浅显易懂

获取媒体流 getUserMedia MDN教程

查看客户端代码

信令服务器

为客户端交换offer、交换ice的中转站

使用nodejs创建一个简单的WebSocket服务,如果想要在公网上必须要用wss,因为客户端用的是https协议无法与ws协议连接,下面是如何创建wss:

查看信令服务服务器代码

STURN/TURN中继服务器

客户端在局域网环境下想要与外网的机器通讯,需要NAT网络穿越。

coturn 下载安装 配置 博客

coturn 下载安装 配置二

对称与非对称NAT

谷歌提供的测试sturn/turn网站