关闭

google webRTC服务器搭建(CentOS7.3)

标签: webRTC
1612人阅读 评论(3) 收藏 举报
分类:

多余的科普我就不说了,这里有篇CSDN的盗文,可以了解一下(关于 GAE,coTurn,Collider等等)



1 安装node.js环境

wget url 下载
tar -zxvf   解压
yum install gcc gcc-c++  安装c++编译环境

指定nodejs安装路径
./configure --prefix=/usr/local/node

编译&安装
make 
make install 

配置node_home环境变量
vi /etc/profile
在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH

保存并编译该文件,使之生效
source /etc/profile

控制台输入 node -v 校验安装版本

命令行设置node使用国内源
npm --registry https://registry.npm.taobao.org info underscore

安装 grunt
npm install -g grunt-cli

安装forever
npm install forever -g

2 安装GoLang语言环境
go语言源码下载地址:https://golang.org/dl/

下载go语言包(已编译的)

解压至 /usr/local/目录下

修改环境变量 /etc/profile
先创建go工作空间 mkdir $HOME/goWorkspace
创建go资源文件夹 mkdir $HOME/goWorkspace/src
export GOROOT=/usr/local/go
export GOPATH=$HOME/goWorkspace
export PATH=$PATH:$GOROOT/bin

编译生效 source /etc.profile




3升级python的版本 google app engine 要求2.7.9以后的

下载资源

解压资源
zx -d file_name
tar -xvf file_name
进入文件夹
创建新的文件夹防止覆盖原版
mkdir /usr/local/python2713
./configure --prefix=/usr/local/python2713

编译安装
make  
make install

备份旧版 使用新版
mv /usr/bin/python  /usr/bin/python_old
ln -s /usr/local/python2713/bin/python2.7 /usr/bin/python
现在输入python -V
Python 2.7.13

PS:要使用yum安装什么依赖包的话就提前安装,python升级后yum就不能使用了,不嫌麻烦也可以切换回来哈

4安装google app engine SDK

官网地址(有墙):https://cloud.google.com/sdk/docs/

下载 解压 不进入文件夹 
./google-cloud-sdk/install.s
./google-cloud-sdk/bin/gcloud init

安装python版google app engine
gcloud components install app-engine-python
gcloud components install app-engine-python-extras

5 部署信令服务器 collider

git 地址

先克隆到本地
git clone https://github.com/webrtc/apprtc.git
克隆完成后,先不要进入文件夹,先执行命令
ln -s `pwd`/apprtc/src/collider/collider $GOPATH/src
ln -s `pwd`/apprtc/src/collider/collidermain $GOPATH/src
ln -s `pwd`/apprtc/src/collider/collidertest $GOPATH/src
完成后 安装信令服务
go get collidermain
这里会被墙,可以通过修改/etc/hosts来翻墙,简单快捷,翻墙host git地址如下

安装
go install collidermain
无证书启动

$GOPATH/bin/collidermain -port=8089 -tls=false

6 配置java runtime environment(JRE)


重命名并解压
mv AutoDL\?BundleId\=220305_d54c1d3a095b4ff2b6607d096fa80163 java.tar.gz
tar -zxvf java.tar.gz 
将java拷贝到/usr/java中
mkdir /usr/java
cp -rfp jre1.8.0_131/ /usr/java

配置环境变量
export JAVA_HOME=/usr/java
export JRE_HOME=/usr/java/jre1.8.0_131
export CLASSPATH=$JRE_HOME/lib/rt.jar:$JRE_HOME/lib/ext
export PATH=$PATH:$JRE_HOME/bin

重编译 source /etc/profile
验证java
[root@iZ2371w9mhlZ jre1.8.0_131]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)



7 部署appRTC房间服务器

进入 apprtc文件夹
npm install (这一步余姚jre支持,推荐使用国内源)

重新编译app engine
grunt build

启动服务
在/home/google-cloud-sdk/bin目录下执行
./dev_appserver.py --host localhost --port 80 --admin_host localhost /home/apprtc/out/app_engine
localhost修改为服务器外网ip

8 coTurn打洞(内网穿透)服务器部署

下载安装包

解压,进入目录
./install.sh
安装完成后
创建js项目coTurn.js
var express = require('express');
var crypto = require('crypto');
var app = express();
var hmac = function(key, content){
    var method = crypto.createHmac('sha1', key);
    method.setEncoding('base64');
    method.write(content);
    method.end();
    return method.read();
};
app.get('/turn'function(req, resp) {
var query = req.query;
var key = '4080218913'// 这里的 key 是事先设置好的, 与房间服务器的key相同
if (!query['username']) {
    return resp.send({'error':'AppError''message':'Must provide username.'});
else {
    var time_to_live = 600;
    var timestamp = Math.floor(Date.now() / 1000) + time_to_live;
    var turn_username = timestamp + ':' + query['username'];
    var password = hmac(key, turn_username);
    return resp.send({
        username:turn_username,
        password:password,
        ttl:time_to_live,
        "uris": [
            "turn:121.40.28.178:3478?transport=udp”,//改成自己的ip
            "turn:121.40.28.178:3478?transport=tcp",
            "turn:121.40.28.178:3479?transport=udp",
            "turn:121.40.28.178:3479?transport=tcp"
            ]
    });
}
});
app.listen('81'function(){
    console.log('server started');
});


安装express框架
nmp install express

守护进程启动 
forever start coTurn.js


另外 如果没做ssl支持,需要修改apprtc/out/app_engine下的 apprtc.py
wss=>ws
https=>http
如果没有ice,需要修改constants.py  将TURN 的注释去掉,写入自己的turn或者stun,注意python文件的格式


PS:可以部署NGINX服务器做代理,统一转发到内部端口,只对外暴露443或者80,看个人喜好

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17839次
    • 积分:412
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:1篇
    • 译文:0篇
    • 评论:11条
    最新评论