WebRTC 服务器搭建


AppRTC搭建

安装JDK

$ yum install -y java-1.8.0-openjdk
$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

安装Node.js

$ yum install -y nodejs
# npm是nodejs的包管理器,随nodejs一同安装
$ npm -g install grunt-cli
$ node --version
v6.17.1
$ npm --version
3.10.10
$ grunt --version
grunt-cli v1.3.2

安装Python和Python-webtest

$ yum install -y python
$ yum install -y python-webtest
$ python --version
Python 2.7.5

安装google_appengine

$ wget https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.40.zip
$ unzip google_appengine_1.9.40.zip
-bash: unzip: command not found
$ yum install -y unzip
$ unzip google_appengine_1.9.40.zip
$ ls
google_appengine  google_appengine_1.9.40.zip

配置环境变量:在/etc/profile文件最后增加一行:
export PATH=$PATH:/root/webrtc/google_appengine
然后刷新:
$ source /etc/profile

安装go

$ yum install -y golang
$ go version
go version go1.13.1 linux/amd64

创建go工作目录

$ mkdir -p /root/webrtc/goWorkspace/src

配置环境变量:在/etc/profile文件最后增加一行:
export GOPATH=/root/webrtc/goWorkspace
$ source etc/profile

安装libevent

$ wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
$ tar xvfz libevent-2.0.21-stable.tar.gz
$ cd libevent-2.0.21-stable
$ ./configure
$ make
$ make install

安装apprtc

$ git clone https://github.com/webrtc/apprtc.git
$ ln -s /root/webrtc/apprtc/src/collider/collider $GOPATH/src
$ ln -s /root/webrtc/apprtc/src/collider/collidermain $GOPATH/src
$ ln -s /root/webrtc/apprtc/src/collider/collidertest $GOPATH/src
$ go get collidermain
$ go install collidermain

安装coturn

$ wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz
$ tar xvfz turnserver-4.5.0.8.tar.gz
$ cd turnserver-4.5.0.8
$ ./configure
$ make
$ make install 

coturn Nat穿透服务器

$ nohup turnserver -L xxx.xxx.xxx.xxx -a -u damon:12345 -v -f -r netease &
$ netstat -ntulp | grep turnserver

collider 信令服务器

$ mkdir /cert
$ cd /cert
$ openssl genrsa -out key.pem 2048
$ openssl req -new -x509 -key key.pem -out cert.pem -days 1095
$ nohup $GOPATH/bin/collidermain -port=8089 -tls=true  -room-server="https://xxx.xxx.xxx.xxx:8080" &
$ netstat -ntulp | grep collider

apprtc 房间服务器

$ cd /root/webrtc/apprtc
#安装依赖
$ npm install
#编译
$ grunt build
#检查
$ netstat -ntulp | grep 8080

nginx

#下载nginx
$ wget http://nginx.org/download/nginx-1.17.4.tar.gz
$ cd nginx-1.17.4
$ ./configure --with-http_ssl_module
$ make install
#默认安装在/usr/local/nginx
$ vim /usr/local/nginx/conf/nginx.conf

配置文件内容:

events {
    worker_connections 1024;
}
http{
    upstream roomserver {
        server xxx.xxx.xxx.xxx:8080;
    }
    server {
        listen 80;
        server_name xxx.xxx.xxx.xxx;  
        return  301 https://$server_name$request_uri;
    }
    server {
        root /usr/share/nginx/html;
        index index.php index.html index.htm;
        listen      443 ssl;
        ssl_certificate /cert/cert.pem;
        ssl_certificate_key /cert/key.pem;
        server_name xxx.xxx.xxx.xxx;
        location / {
            proxy_pass http://roomserver$request_uri;
            proxy_set_header Host $host;
        }
        location ~ .php$ {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
        }
    }
}

跨域问题报错:Failedto start signaling:Failedto execute'pushState' on'History'
解决方法:vim /root/webrtc/apprtc/out/app_engine/js/apprtc.debug.js

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