因为最近在研究webRTC
,尽管它允许点对点/端对端的通信,但还是需要服务器实现,比如以下场景:
- 信令传输:建立点对点的连接需要传输一些媒体和网络相关的元数据信息,需要通过服务器
- NAT和防火墙穿透:需要通过
ICE
框架来建立点与点之间的网络路径。用STUN/TURN
服务器。
WebRTC
建立连接的步骤大概是这样的:
- 客户端(浏览器)直接尝试直连;
- 如果如果直连则通过
STUN
服务器进行穿透; - 如果无法穿透则通过
TURN
服务器进行中转。
一、STUN/TURN
服务器
- STUN 服务器用于获取设备的外部网络地址
- TURN 服务器是在点对点失败后用于通信中继。
二、coturn
:TURN
和STUN Server
的免费开源实现
信令服务器可以用Node.js
搭建,但是现实中大多都用STUN/TURN
服务器进行打洞,coturn是一个免费开源的STUN/TURN
服务器,完整的实现了STUN/TURN/ICE
协议,支持 P2P
穿透防火墙。
支持的项目目标平台是:
- Linux(Debian,Ubuntu,Mint,CentOS,Fedora,Redhat,Amazon Linux,Arch Linux,OpenSUSE)
- BSD(FreeBSD,NetBSD,OpenBSD,DragonFlyBSD)
- Solaris 11
- Mac OS X.
- Cygwin(用于非生产研发目的)
也可以通过请求支持其他服务器平台。
支持任何客户端平台,包括Android,iOS,Linux,OS X,Windows和Windows Phone。
1、安装虚拟机
这里使用的是在Ubuntu
系统环境下的编译安装coturn
的过程。
直接在浏览器中搜索进行下载,我使用的是VMware Workstation 12
:
2、下载Ubuntu
镜像
3、在VMware
虚拟机中安装Ubuntu
a)创建新的虚拟机
b)选择自定义(高级)
c)选择稍后安装系统
一直点下一步,直到到安装客户机操作系统,打马赛克的地方是因为我已经安装好了,这里本身是没有任何目录地址的,选择稍后安装操作系统,然后下一步
d)选择系统版本
首先客户机系统为Linux
,然后你的电脑是32位的就默认选择即可不用更改,如果是64位的就要从下拉选择里选择Ubuntn 64位
,否则会出错,然后点击下一步。
e)选择安装位置
这里可以自定义安装目录,但是选择的目录文件必须是已存在的
f)安装配置
关于设置处理器个数、内存大小、网络类型、控制器类型、磁盘类型、选择磁盘都可以选择默认的,因为后期可以自行更改,到了指定磁盘容量,选择将虚拟磁盘存储为单个文件,然后点击下一步
g)自定义硬件
一直下一步到这里,然后点击自定义硬件按钮
h)选择Ubuntu
镜像
然后点击关闭,点击完成,虚拟机到此配置完毕。
4、开启虚拟机
5、设置语言
双击选择中文简体,然后会自动跳到下一步。然后会出现键盘布局,选择汉语然后继续。
6、安装类型
到了安装类型,选择清楚整个磁盘并安装Ubuntu
,然后点击继续。
7、输入位置
随便输入你所在就行。
8、设置用户名密码
输入你自己定义的用户名和密码后,选择自动登录,然后点击继续。
9、正式安装Ubuntu
安装完毕后,选择重启。
重启后,就可以看到如下界面,安装完成:
参考文章:
自己动手搭建 WebRTC TURN&STUN 服务器
p2p webrtc服务器搭建系列1: 房间,信令,coturn打洞服务器