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

首先你需要一台公网ip的服务器

基于coturn项目的stun/turn服务器搭建

通过stun/turn中继服务器,我们就可以通过公网IP地址来解析找到发起请求的内网IP地址(即:躲在路由器或交换机后的电脑)

我这边采用PeerJs库来建立P2P数据或媒体流连接。

实际测试,中继服务器还是会存在找不到内网地址的情况。

经过调试WebRTC已成功建立连接的浏览器有:

PC to PC:
Chrome to Chrome

PC to Mobile(IOS):
Chrome to Safari

PC to Mobile(Android):
Chrome to Chrome

coturn安装

首先从git仓库clone下来

git clone https://github.com/coturn/coturn.git

cd ~/path #进去clone项目地址根目录

编译安装

./configure --prefix=/usr/local/coturn make & sudo make install

命令模式启动服务

turnserver -o -v -f -a -m 2 --max-bps=100000 --min-port=32355 --max-port=65535 --user=your.name:your.passwod -r your.domain -L your.ip

例:

./turnserver -o -v -f -a -m 2 --max-bps=100000 --min-port=32355 --max-port=65535 --user=yunmo:123 -r yunmo.org.cn -L 172.19.189.21

-o 以守护进程模式运行(后台运行)
-v 日志会以“适度详细”的程度来记录
-f  增加指纹机制
-a 长期验证机制
-m 以x个进程来处理中继请求
--max-bps 带宽
--min-port   起始用的最小端口
--max-port   最大端口号
--user=帐号:密码 (turn服务的用户验证机制要用)
-r 域名
-L 监听IP(turn服务器的ip)这个ip是你ifconfig查到的ip,不是你的公网ip
-X 后面加 public ip/ private ip 多IP情况下使用,有几个ip就用几次