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

原创 2017年05月17日 18:35:04

多余的科普我就不说了,这里有篇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,看个人喜好

apprtc(webrtc) 本地搭建服务器

这两天测试了下webrtc的效果,不知道是不是手机比较渣,画面并不是很清晰,先来说说服务器的部署。部署环境ubuntu14.04 32位。 一、服务器组成       1、AppRTC 房间服务器 ...
  • s569646547
  • s569646547
  • 2016年03月02日 18:32
  • 18511

Webrtc服务器搭建

1.WebRTC后台服务: 通话的房间服务器(Room Server) 房间服务器是用来创建和管理通话会话的状态维护,是双方通话还是多方通话,加入与离开房间等等,我们暂时沿用Google部...
  • zqf_office
  • zqf_office
  • 2015年11月15日 18:47
  • 9494

webrtc 服务安装与配置

  • 2017年11月14日 16:22
  • 68KB
  • 下载

Webrtc服务器搭建(基于公网环境)

webrtc服务器环境搭建(基于公网环境)Last Modified Date: 2017/8/2 目录 1. 搭建平台 2. 软件安装 3. 搭建房间服务器(Ro...
  • u013351084
  • u013351084
  • 2017年09月08日 23:39
  • 2207

Webrtc服务器搭建(基于局域网环境)

webrtc服务器搭建(基于局域网环境)Last Modified Date: 2017/8/2目录 1. 搭建平台 2. 软件安装 3. 搭建房间服务器(Room...
  • u013351084
  • u013351084
  • 2017年09月08日 23:05
  • 1366

webrtc 服务器搭建(1)apprtc房间服务器

ubuntu 14.04 64位 python 2.7.6 npm 5.4.2 node/nodejs v8.5.0 配置apprtc一切以官方配置为准:https://github.com/we...
  • ctrlxcs13
  • ctrlxcs13
  • 2017年09月22日 16:59
  • 306

webrtc应用turn服务器搭建

基于阿里云的turn服务器搭建
  • xqj198404
  • xqj198404
  • 2015年09月05日 08:40
  • 3727

基于webrtc的apprtc服务器搭建(ubuntu14.04 64位)

备注:1.下载的过程需要翻墙,可以确保有稳定的vpn            2.webrtc服务器所需要的证书必须是第三方签名机构颁发的证书,自签证书不起作用 一、服务器组成       1...
  • Stone_OverLooking
  • Stone_OverLooking
  • 2017年08月15日 17:02
  • 940

openwebrtc(1) 服务端和android客户端demo安装

1,关于openwebrtcOpenWebRTC 是基于 Gstreamer 实现的开源的、跨平台的 WebRTC 客户端框架,支持 H.264 和 VP8。利用 OpenWebRTC,WebRTC就...
  • freewebsys
  • freewebsys
  • 2015年06月26日 14:28
  • 6294

Webrtc服务器搭建

Webrtc服务器搭建 1.WebRTC后台服务: 通话的房间服务器(Room Server) 房间服务器是用来创建和管理通话会话的状态维护,是双方通话还是多方通话,加入与离开房间等等,我们...
  • tifentan
  • tifentan
  • 2016年12月05日 10:04
  • 3187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:google webRTC服务器搭建(CentOS7.3)
举报原因:
原因补充:

(最多只允许输入30个字)