2019独角兽企业重金招聘Python工程师标准>>>
写在前面:这篇博客是上一篇博客的继续,上一篇博客讲解了下载appRTC和编译安装的过程。
一、信令服务器Collider安装:
1、依赖安装:
1) Collider服务器是基于Golang开发的,并使用了google appengine的python开发包,我自己上传到CSDN的下载地址:
http://download.csdn.net/download/wangghq800/9767019
2) golang的安装:
sudo apt-get install golang
2、部署:
1) 在你的$HOME目录下建立goWorkspace文件夹和子目录src,命令如下:
mkdir -p $HOME/goWorkspace/src
2) 拷贝$HOME/apprtc/src/collider目录下所有的go文件到src文件夹下,命令如下:
cp -rf $HOME/apprtc/src/collider/* $HOME/goWorkspace/src
3) 安装collide代码的依赖包并编译,进入目录 $HOME/goWorkspace/src,
设置GOPATH环境变量 export GOPATH=$HOME/goWorkspace 并执行 :
go get collidermain
go install collidermain
4)成功编译后会在$HOME/goWorkspace目录下生成bin和pkg目录,执行文件在bin目录下:
执行命令(这里测试过不用修改main.go,通过参数传进去变量):
$HOME/goWorkspace/bin/collidermain -port=443 -tls=false -room-server=http://10.0.0.4
上面简单讲解:端口号为:443,关闭TLS加密功能,collider服务器地址为:http://10.0.0.4
二、Turn服务器coTurn的安装:
因为我用的是微软云Azure的服务器,ubunt看到的只是内网IP,还有一个对外的额公网IP,端口是一一对应的。
1、下载http://turnserver.open-sys.org/downloads/
选择对应系统的安装包,我的是64位ubuntu,我选择了这个安装包:
turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz
2、解压并进入解压目录,执行下面命令:
sudo apt-get install gdebi-core
sudo gdebi coturn_4.2.2.2-1_i386.deb
3、coTurn新建一个用户test,密码为test,产生对应的key:
turnadmin -a -u test -r rtc.whenchat.com -p test
turnadmin -k -u test -r rtc.whenchat.com -p test
如图:
4、生成签名证书:
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem\
-out /etc/turn_server_cert.pem -days 99999 -nodes
5、根据我们私有IP和公有IP,用户名和密码,配置/etc/turnserver.conf;
备份下:mv /etc/turnserver.conf /etc/turnserver.conf.back
新建文件:vim /etc/turnserver.conf, 并把下面配置拷贝进去:
listening-device=eth0
listening-port=3478
listening-ip=10.0.0.4
external-ip=139.217.40.189/10.0.0.4
min-port=8000
max-port=10000
verbose
fingerprint
lt-cred-mech
#use-auth-secret #这个配置导致Turn401
#static-auth-secret=test #这个配置导致Turn401
user=test:0x486c9ec85f132b2e6b0243dc8299c1d8
user=test:test
realm=demo.com
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
no-loopback-peers
no-multicast-peers
no-cli
6、启动coTurn
service coturn start
三、Turn服务器的REST API实现:
根据上一篇博客,在 appRTC编译的目录下:apprtc/out/app_engine/constants.py 文件中配置Turn服务器的配置,我的对应修改如下:
TURN_BASE_URL = 'htpp://139.217.40.189'
TURN_URL_TEMPLATE = '%s/turn?username=%s&key=%s'
CEOD_KEY = 'test'
ICE_SERVER_BASE_URL = 'http://139.217.40.189:8080'
ICE_SERVER_URL_TEMPLATE = '%s/turn?knowchat&key=%s'
上面的配置决定了 安卓的AppRTC的获取ICE的RETS 的接口为:
http://139.217.40.189:8080:%s/turn?knowchat&key=%s
其中,最重要的是: 139.217.40.189:8080这个是room-server的appRTC启动的HTTP服务器:
所以我在 apprtc/src/app_engine/apprtc.py 文件中加入了一个REST API接口,如下图中最后一行,和上面对应 class TurnPage类:
参考的其他篇博客:http://blog.csdn.net/jwcqc/article/details/53156347
http://blog.csdn.net/s569646547/article/details/50780682