webrtc服务器环境搭建
(基于公网环境)
Last Modified Date: 2017/8/2
目录
1. 搭建平台
2. 软件安装
3. 搭建房间服务器(Room Server)
4. 搭建信令服务器(Collider Server)
5. 搭建STUN\TURN服务器
6. 配置Nginx服务器
7. 运行测试
8. 附录
1. 搭建平台
- 操作系统: Ubuntu 16.04 server(64bits)
- Google webrtc的服务器Demo:详见https://github.com/webrtc/apprtc
- 域名: webrtc.olcms.com
- IP地址: 需要是公网地址
2. 软件安装
- 安装JDK:
add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install openjdk-8-jdk
- 安装nodejs相关包:
apt-get install nodejs
apt-get install npm
apt-get install nodejs-legacy
npm -g install grunt-cli
- 安装Python和Python-webtest:
apt-get install python
apt-get install python-webtest
注: 若已安装过上述软件,可忽略;如上述未提及的软件需要安装,请自行安装。
3. 搭建房间服务器(Room Server)
- 下载apprtc源码(操作所在目录/root/)
git clone https://github.com/webrtc/apprtc.git
cd apprtc
npm install
若npm install报错,请自行解决。
- 修改文件
1.修改/root/apprtc/src/app_engine/constants.py
TURN_BASE_URL = 'https://webrtc.olcms.com'; #本机域名webrtc.olcms.com
TURN_URL_TEMPLATE = '%s/turn.php?username=%s&key=%s'; #如果turn.php未实现,可使用默认配置
CEOD_KEY = 'inesadt' #此处后面turn配置的用户名保持一致
ICE_SERVER_BASE_URL = 'https://webrtc.olcms.com';
ICE_SERVER_URL_TEMPLATE = '%s/iceconfig.php?key=%s'; #如果iceconfig.php未实现,可用默认配置,但是Android Apk会有问题
WSS_INSTANCE_HOST_KEY = 'webrtc.olcms.com:8089' #信令服务器端口号8089
WSS_INSTANCE_NAME_KEY = 'vm_name'
WSS_INSTANCE_ZONE_KEY = 'zone'
WSS_INSTANCES = [{
WSS_INSTANCE_HOST_KEY: 'webrtc.olcms.com:8089',
WSS_INSTANCE_NAME_KEY: 'wsserver-std',
WSS_INSTANCE_ZONE_KEY: 'us-central1-a'
}, {
WSS_INSTANCE_HOST_KEY: 'webrtc.olcms.com:8089',
WSS_INSTANCE_NAME_KEY: 'wsserver-std-2',
WSS_INSTANCE_ZONE_KEY: 'us-central1-f'
}]
- 编译(在apprtc目录下进行)
grunt build
编译完成之后,会生成out目录,房间服务器编译完成。
注(编译成功可忽略):此处编译需要翻墙,若编译时无法翻墙,可下载手动下载https://api.callstats.io/static/callstats.min.js,并把文件callstats.min.js放到目录/root/apprtc/out/app_engine/third_party/callstats/下。然后修改/root/apprtc/build/build_app_engine_package.py文件:
# Download callstats.
......
......
response = requests.get(urls[fileName])
#if response.status_code == 200: #把此处注释掉
print 'Downloading %s to %s...' % (urls[fileName], path)
with open(path + fileName, 'w') as to_file:
to_file.write(response.text)
#else: #把此处注释掉
# raise NameError('Could not download: ' + filename + ' Error:' + \ #把此处注释掉
#str(response.status_code)) #把此处注释掉
然后继续进行编译即可。
安装和配置google app engine
1.下载google app engine
需翻墙,下载地址https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.50.zip),或者通过其他地方下载。2.配置google app engine 路径
解压google_appengine_1.9.50.zip
unzip google_appengine_1.9.50.zip
编辑/etc/profile文件,在文件最后添加语句:
export PATH="$PATH:/root/google_appengine/"
(当前安装目录是/root/google_appengine,请根据自己的安装目录进行配置)
保存profile文件,进行以下操作生效
source /etc/profile
- 运行房间服务器(room server)
在目录/root/google_appengine目录下找到dev_appserver.py脚本,执行以下语句
./dev_appserver.py --host=webrtc.olcms.com /root/apprtc/out/app_engine
若想后台运行,则执行
nohup ./dev_appserver.py --host=webrtc.olcms.com /root/apprtc/out/app_engine &
在浏览器中访问房间服务器