$ git clone https://github.com/webrtc/apprtc.git apprtc_root
$ cd apprtc_root
$ git checkout -b latest
$ echo "install node"
$ cd ~;
$ wget https://nodejs.org/dist/v5.9.0/node-v5.9.0-sunos-x64.tar.xz
$ tar xvf node-v5.9.0-sunos-x64.tar.xz
$ export PATH=$PATH:~/node-v5.9.0-linux-x64/bin
$ echo "export PATH=$PATH:~/node-v5.9.0-linux-x64/bin" >> ~/.bashrc
$ source ~/.bashrc
$ sudo npm install -g npm
注意:
node版本请按以上命令下载, 否则可能导致源码编译失败.
$ echo "install grunt"
$ npm -g install grunt-cli
切换到apprtc_root目录下:
$ npm install
然后再使用grunt
命令编译出GAE app.
$ grunt build
编译完成后,输出将放在~/apprtc_root/out
目录下的app_engine
目录
建议去github下载最新版, go环境下载通道, 这样可以省去编译go源码的时间.
创建本地GO代码目录, 类似代码仓库
$ mkdir -p ~/gopath/src
配置本地环境变量~/.bashrc
$ vim ~/.bashrc
将下面的代码粘贴进去~
export GOROOT=~/go # go编译环境
export GOPATH=~/gopath # go代码仓库
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存后, 退出终端重新打开或者执行下面的命令刷新环境变量, GO环境就安装配置好了.
$ source ~/.bashrc
源码AppRTC代码仓库中已经包含了go信令服务器代码, 为了方便这些代码的更新, 这里选择将代码链接到$GOROOT/src
下
$ ln -rs ~/apprtc_root/src/collider/collider $GOPATH/src/
$ ln -rs ~/apprtc_root/src/collider/collidermain $GOPATH/src/
$ ln -rs ~/apprtc_root/src/collider/collidertest $GOPATH/src/
编辑$GOPATH/src/collidermain/main.go
, 修改房间服务器为你的服务器地址
//var roomSrv = flag.String("room-server", "https://apprtc.appspot.com", "The origin of the room server")
var roomSrv = flag.String("room-server", "http://192.168.1.6", "The origin of the room server")
编辑$GOPATH/src/collider/collider.go
,设置信令服务器所需要用的HTTPS的证书文件, 找到如下代码,注释后改为这样:
//e = server.ListenAndServeTLS("/cert/cert.pem", "/cert/key.pem")
e = server.ListenAndServeTLS("/etc/nginx/192.168.1.6.crt", "/etc/nginx/192.168.1.6.key")
这里我并没有使用证书, 如需测试证书, 可使用Let’s Encrypt免费添加https
配置是否使用tls
var tls = flag.Bool("tls", false, "whether TLS is used")
首先编译collider, 切换到$GOPATH/src
下(使用低版本的go编译可能会出现其他的一些问题, 这里只列举了通常会出现的错误, 这里我用的go1.7.4)
$ go get collider
如果执行该命令出现如下错误:
这里是一个包无法下载, 可以直接去github上下载, 下载链接是 https://github.com/golang/net
, 你可以把这个仓库clone下来
$ cd ~
$ git clone https://github.com/golang/net.git
然后将仓库移到$GOPATH/src
代码仓库下, 并且保证目录结构
$ echo "创建目录结构"
$ mkdir -p golang.org/x
$ echo "将net目录移动到golang.org/x"
$ mv net golang.org/x
$ echo "最后将golang.org目录移动到$GOPATH/src"
$ mv golang.org $GOPATH/src
然后执行上面的collider
编译命令, 这下就可以编译collidermain
了
$ go get collidermain
编译collider
相关均在$GOPATH/src
目录下
编译成功后, 可执行文件在$GOPATH/bin
目录下
网上基本找不到DEMO, 不过还是有大神写了一个例子, 下载链接auth demo. 你也可以参考该作者原文地址http://www.cnblogs.com/wansui/p/5851653.html
编译前, 先将你的服务器地址把auth.go
中的192.168.1.6
替换掉.
为了方便生成二进制文件以及使用, 我将代码下载到$GOPATH/src
下
$ cd $GOPATH/src
$ mkdir auth; cd auth
$ wget https://github.com/vc60er/apprtc_turn_auth/blob/master/auth.go
$ cd ..; go get auth
因为已经配置了$GOPATH/bin
环境变量, 这里可直接执行
$ auth
执行成功后, 默认端口为8081
$ collidermain
执行成功后, 默认端口为8089
① 安装 Google App Engine SDK for Python
点这里进入文档通道ubuntu安装GAE文档
② 进入~/apprtc_root/out
编辑constants.py
查看auth.go
源文件, 找到var key = "4080218913"
, 把它的值赋给CEOD_KEY
,ICE_SERVER_API_KEY
, 保证一直就行.
CEOD_KEY = '4080218913'
ICE_SERVER_BASE_URL = 'http://192.168.1.6:8081'
ICE_SERVER_URL_TEMPLATE = '%s/turn?key=%s'
#ICE_SERVER_API_KEY = os.environ.get('ICE_SERVER_API_KEY')
ICE_SERVER_API_KEY = '4080218913'
③ 为了方便以后快速运行, 这里写一个脚本, (如果上面的ICE_SERVER_API_KEY
已经配置, 可以去掉export ICE_SERVER_API_KEY="4080218913"
)
export PATH=$PATH:~/google_appengine # gae安装目录
export APPRTC_APP=~/apprtc_root/out/app_engine/
export HOST="--host=0.0.0.0"
export PORT=8080
export ICE_SERVER_API_KEY="4080218913"
dev_appserver.py $HOST $PORT $APPRTC_APP #端口小于1024, 需要在前面加入sudo
tips:
如果不启用
auth服务器, webrtc只能网页之间连麦, 手机是无法连麦的.
服务器demo代码请看~/apprtc_root/out/app_engine/apprtc.py, 支持两人连麦