WebRTC 服务器搭建篇

First off All

服务器环境:采用的阿里云国内服务器,系统: Ubuntu 16.04 64位 。

各个服务所需要的编译环境图:

各个服务器对应所需编译平台

1.第一步,先更新下命令行工具,工欲善其身必先利其器,不更新回头出现莫名的错误me 不管。

apt-get update

2.第二步:我们先从房间服务器搭建开始入手,看上面的图,就知道,这个家伙是要用时node.js编译的,那必须安装各种node.js编译相关的插件

按如下步骤:

先安装两个工具库

sudo apt-get install git unzip  golang

sudo apt-get install automake autoconf libtool

备注:不要用这种方法安装(apt-get nodejs 如果这么装会报各种版本不兼容)

使用这种方式下载官网 如:

wget https://nodejs.org/dist/v4.7.0/node-v4.7.0-linux-x64.tar.gz

并解压下

tar -xzf  node-v4.7.0-linux-x64.tar.gz

要安装node js linux的环境就是方便 只需要配置下环境变量即可,方式如下

vim /etc/profile

里面加入

export PATH=/usr/webrtc/node-v4.7.0-linux-x64/bin:$PATH(备注这个地址是我自己的解压的地址,找到自己的node加压的bin目录设置进环境变量即可)

配置还环境变量以后,需要生效下,执行如下命令

source /etc/profile

下面我们可以测试下node js 环境是否正常了 命令行输入node 进入了就说明node js 安装成功了

下面还需要安装下npn(编译工具)(不用sudo安装npm)

npm -g install grunt-cli

安装python

sudo apt-get install python-webtest

安装jdk,备注:这个是google的jdk

apt-get install default-jdk(google的jdk)

下面就下载rtc的源码  使用clone的方式

进入根目录

git clone https://github.com/webrtc/apprtc.git

这样就有一个apprtc的文件夹了

下面进入文件夹

cd apprtc

如果国外的需要设置下镜像(国内自然不用,如果速度慢就设置下淘宝镜像)

npm config set registry https://registry.npm.taobao.org (设置的淘宝镜像)

npm info underscore (生效设置)

下面使用

npm install  //如果这个命令执行有错误 需要删除 sudo rm node_modules -r  再重试(编译房间服务器)

下面进行编译

grunt  build  //执行结果最后显示 Done, without errors. 就没问题 还是先改src再去build,或者直接修改out里面的配置,都是可以的一个直接改一个是改src

去掉警告,顺利通过:grunt build --force

(Aborted due to warnings. 代表编译成功了)

编译成功后就会有一个新的文件夹out

下面要修改房间服务器的地址

cd out/app_engine

下面需要修改三个文件

1.vim constants.py

指明ice服务器turn 注意不支持https  ice服务器一般都是turn开头

修改 43 47行 改成本服务器ip地址 端口是3478 和ceod_key成water(这里我把账号密码,设置成water了,账号密码自己定义,上面的修改成自己的ice服务器端口,后面会设置成3478)


下面需要修改信令服务器的地址 wws开头

61 和 65 行修改成 本服务器ip端口是 8089:比如

这个文件就ok了

2.修改下一个文件

vim apprtc.py

修改 143 144行

去除if else暂使用http的上面两个地址

3.修改 vim index_template.html

找到loadingParams的地方如下图



添加如下代码到上面,修改下账号和密码 和下面的ice服务器 备注端口要和前面的一样

var servers = [{                                                                         

credential: "water",

username: "water",

urls: [

"turn:112.74.96.116:3478?transport=udp",

"turn:112.74.96.116:3478?transport=tcp"

]

}];

并注释掉下面的

peerConnectionConfig:{{pc_config|safe}},

并添加

peerConnectionConfig: {"iceServers": servers, "rtcpMuxPolicy": "require", "bundlePolicy": "max-bundle"},

可以看到下

比如 (备注端口要和前面的Ice服务器一样)

那怎么开启这个服务器,由于是google开发的需要google引擎

下载

下载https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python

(需要翻墙)

我自己上传的可以

到链接:https://pan.baidu.com/s/1pLmQQPt 密码:rvwj

可以下载到如下的

google_appengine压缩包,服务器上面有 解压命令 :

unzip  google_appengine_1.9.38.zip

运行房间服务器命令,ip是你服务器ip:

./google_appengine/dev_appserver.py  --host 0.0.0.0  ./apprtc/out/app_engine

./google_appengine/dev_appserver.py  --host 47.94.106.28  ./apprtc/out/app_engine

出现的错误:google.appengine.tools.devappserver2.wsgi_server.BindError: Unable to bind 47.94.106.28:8080

这样就成功开启了第一个房间服务器。。。。。。是不是感觉不容易。。。


二、下面去配置开启信令服务器 使用go进行编译

其实他的代码已经在房间服务里面了,我们把代码cp出来单独放

将信令服务器的代码copy一份至根目录

cp apprtc/src/collider/ . -r

然后进入信令服务器的文件夹

cd collider/

我们把里面的代码全部放在一个src目录下面,命令行方式如下

创建src目录 

mkdir src

将需要编译的代码拷贝到src目录

mv co* src

所以需要安装go 进入根目录

下面安装go 语言

下载go的安装包

wget https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

tar -xzf go1.5.1.linux-amd64.tar.gz

如图

然后cd 到go/bin 目录下面

下面需要安装go

一样的配置环境变量


添加环境变量

vim /etc/profile

加入

export GOROOT=/usr/webrtc/go=

export PATH=$GOROOT/bin:/root/node-v4.7.0-linux-x64/bin:$PATH

并生效他

source /etc/profile

下面需要修改下信令服务器的配置main.go



修改下自己的房间服务器的地址

修改成自己的服务器ip地址 然后端口是8080

编译先设置下零时go的编译地址如:

export GOPATH=/usr/webrtc/collider/

使用go get collidermain进行编译,这时候如果国内服务器直接执行会报错

我们需要手动下载下一个插件参考地址:http://blog.csdn.net/alexwoo0501/article/details/73409917

下载代码

mkdir -p $GOPATH/src/golang.org/x

cd $GOPATH/src/golang.org/x

git clone https://github.com/golang/net.git

再去执行

go get collidermain

会生成bin文件夹和 pkg 文件夹 就成功编译好了

开启信令服务器的方式如下

cd collider/bin

运行命令:

./collidermain -port=8089 -tls=false

成功开启信令服务器

三.搭建ice打洞服务器安装打洞服务器 到根目录 使用makefile 进行编译

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

需要下载一些插件安装coturn

下面coturn安装 安装前面的版本就好不需要括号里面的

$ sudo apt-get install libssl-dev

$ sudo apt-get install libsqlite3 (or sqlite3)

$ sudo apt-get install libsqlite3-dev (or sqlite3-dev)

$ sudo apt-get install libevent-dev

$ sudo apt-get install libpq-dev

下面就行编译

cd coturn

./configure

sudo make install

开启打动服务器的方式

cd /usr/local/bin

运行:

172.17.231.82

./turnserver --syslog -a -L 172.17.231.82 -X 172.17.231.82 -E 172.17.231.82 -f --min-port=32355 --max-port=65535 --user=water:water -r water --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout -v

备注:这里我遇到一个坑,就是我用公网的ip启动都提示无法绑定对应的ip,只有用0.0.0.0 启动不报错,所以局域网的时候可以打通,外网的时候coturn打洞都不成功。

启动可以吧这些参数写配置文件中,方便。

最后三个服务器都差不多搭建成功,如果在一个服务器上,可以写个脚本直接启动三个服务器:

我自己写了个作为参考:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容