WebRTC服务器的配置
来源:互联网 发布:淘宝微淘抢红包 编辑:程序博客网 时间:2024/06/06 01:48
WebRTC服务器由三部分组成:
1. 房间服务器:对客户端提供信令服务器的配置信息,通过http协议实现
2. 信令服务器:将本地端的condidate经过SDP协议封装,通过websocket发送给远程端,实现本地和远程端的condidates的交换,从而实现”穿墙”
3. coturn服务器:客户端condidates发现服务器
房间服务器和信令服务器google的demo下载地址:https://github.com/webrtc/apprtc 。apprtc包含有房间服务器和信令服务器的实现。
coturn服务器下载地址:https://github.com/coturn/coturn
房间与信令服务器的配置
环境配置
- 系统版本:Ubuntu 5.4.0-6ubuntu1~16.04.4
- 安装如下依赖工具:
sudo apt-get install openjdk-7-jdk sudo apt-get install nodejssudo apt-get install -y npmsudo npm install -g npmsudo apt-get install nodejs-legacysudo npm -g install grunt-clisudo apt-get install python-webtestsudo apt-get install -y python-requestssudo apt-get install golang-gosudo apt-get install -y mercurial
apprtc房间服务器运行时需依赖Google App Engine SDK for Python点击下载(需要翻墙)。下载完成后解压并设置环境变量
sudo vi /etc/profileexport PATH=$PATH:/home/google_appenginesource /etc/profile
配置房间服务器
- 修改文件src/app_engine/apprtc.py
//在get_wss_parameters方法中,需要把 wss: 替换成 ws:、把 https: 替换成 http:def get_wss_parameters(request):...... if wss_tls and wss_tls == 'false': wss_url = 'ws://' + wss_host_port_pair + '/ws' wss_post_url = 'http://' + wss_host_port_pair else: wss_url = 'ws://' + wss_host_port_pair + '/ws' wss_post_url = 'http://' + wss_host_port_pair return (wss_url, wss_post_url)
不要使用ssl链接,因为没有有效证书,ssl链接会失败!
//在make_pc_config方法中,在config里面加turnserver和stunserver地址和用户密码,jalon是用户名,密码也是jalon.如下: config = { 'iceServers': [{"urls":"stun:192.168.1.183"},{"urls":"turn:jalon@192.168.1.183","credential": "jalon"}], }
- 修改文件src/app_engine/constants.py,修改TURN_BASE_URL,WSS_INSTANCES,CEOD_KEY,如下所示
# TODO: Remove once clients support ICE_SERVER.#TURN_BASE_URL = 'https://computeengineondemand.appspot.com'TURN_BASE_URL = 'http://192.168.1.183:3478'#TURN_BASE_URL = 'http://107.160.87.231:3478'TURN_URL_TEMPLATE = '%s/turn?username=%s&key=%s'#CEOD_KEY = '4080218913'CEOD_KEY = 'jalon'#必须和cotrun服务器配置一致#107.160.87.231#ICE_SERVER_BASE_URL = 'https://networktraversal.googleapis.com'ICE_SERVER_BASE_URL = 'http://192.168.1.183:3478'#ICE_SERVER_BASE_URL = 'http://107.160.87.231:3478'ICE_SERVER_URL_TEMPLATE = '%s/v1alpha/iceconfig?key=%s'ICE_SERVER_API_KEY = os.environ.get('ICE_SERVER_API_KEY')WSS_INSTANCES = [{ #WSS_INSTANCE_HOST_KEY: 'apprtc-ws.webrtc.org:443', #WSS_INSTANCE_HOST_KEY: '107.160.87.231:8089', WSS_INSTANCE_HOST_KEY: '192.168.1.183:8089', WSS_INSTANCE_NAME_KEY: 'wsserver-std', WSS_INSTANCE_ZONE_KEY: 'us-central1-a'}, { #WSS_INSTANCE_HOST_KEY: 'apprtc-ws-2.webrtc.org:443', #WSS_INSTANCE_HOST_KEY: '107.160.87.231:8089', WSS_INSTANCE_HOST_KEY: '192.168.1.183:8089', WSS_INSTANCE_NAME_KEY: 'wsserver-std-2', WSS_INSTANCE_ZONE_KEY: 'us-central1-f'}]
修改完成后执行grunt build,编译完成后会生成out目录,可以直接执行
dev_appserver.py --host=0.0.0.0 ./out/app_engine
打印log如下:
jalon@sub-server:~/apprtc$ dev_appserver.py --host=0.0.0.0 ./out/app_engineINFO 2017-01-17 08:34:47,013 sdk_update_checker.py:229] Checking for updates to the SDK.INFO 2017-01-17 08:35:05,035 sdk_update_checker.py:245] Update check failed: <urlopen error [Errno 101] Network is unreachable>INFO 2017-01-17 08:35:05,116 api_server.py:205] Starting API server at: http://localhost:41124INFO 2017-01-17 08:35:05,121 dispatcher.py:197] Starting module "default" running at: http://0.0.0.0:8080INFO 2017-01-17 08:35:05,128 admin_server.py:116] Starting admin server at: http://localhost:8000
配置信令服务器
- 创建服务器目录:
sudo mkdir -p /collider_root/srcsudo chmod 777 /collider_root/src
- 修改环境变量
sudo vi /etc/profileexport GOPATH=/collider_rootsource /etc/profile
- 拷贝服务器源码文件
将apprtc\src\collider 目录文件拷贝至/collider_root/src目录下
- 开始编译
进入/collider_root/src目录下,执行:go get collidermaingo install collidermain
- 运行服务器
修改collider_root/src/collidermain/main.go填上信令服务器的ip地址,如下:var roomSrv = flag.String("room-server", "http://192.168.1.183:8080/", "The origin of the room server")修改后保存。
执行/collider_root/bin/collidermain -port=8089 -tls=false启动信令服务器.
coTurn服务器配置
coTurn服务器目前是google维护的开源服务器,源码托管在github上https://github.com/coturn/coturn。为了节省配置的时间,也可以直接下载已经编译好的软件包,在下面站点可以下载我们对应平台的软件包:http://turnserver.open-sys.org/downloads/v4.4.1.2/ 打开这个网址,根据我们的服务器类型选择下载,我现在选择Debian和Ubuntu系统的包:
命令行下载:wget http://turnserver.open-sys.org/downloads/v4.4.1.2/turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz 解压:tar xvfz turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz参考安装手册 INSTALL 文件进行安装:sudo apt-get updatesudo apt-get install gdebi-coresudo gdebi coturn*.deb然后编辑配置文件,打开系统默认启动配置:vim /etc/default/coturn将TURNSERVER_ENABLED=1去掉注释,保存退出.修改coturn的配置文件 /etc/turnserver.conf,配置如下:#listening-device=enp2s0#listening-ip=192.168.1.183#relay-device=enp2s0#relay-ip=192.168.1.183verbosefingerprintlt-cred-mech#use-auth-secret#static-auth-secret=jalonrealm=demouser=jalon:0xa9f776c6470bab44567b2584863e7345user=jalon:jalonstale-nonce#cert=/etc/turn_server_cert.pem#pkey=/etc/turn_server_pkey.pemno-loopback-peersno-multicast-peersmobilityno-cli
上面的user=jalon:0xa9f776c6470bab44567b2584863e7345 是通过
# $ turnadmin -k -u jalon -r north.gov -p jalon# Output: 0xa9f776c6470bab44567b2584863e7345 生成的,在turn.config文件中有详细说明!
自动运行脚本
#!/bin/shexport PATH=$PATH:/home/jalon/google_appengineexport export GOPATH=/collider_rootcd /home/jalon/apprtcdev_appserver.py --host=0.0.0.0 ./out/app_engine &/collider_root/bin/collidermain -port=8089 -tls=false &turnserver &
测试截图
启动服务器后,两个手机分别安装AppRTC应用,在设置中将服务器地址设置为http://192.168.1.183后设置同一个房间登入。
相关问题:
在grunt build房间服务器是出错
Running "shell:buildAppEnginePackage" (shell) taskTraceback (most recent call last): File "./build/build_app_engine_package.py", line 12, in <module> import requestsImportError: No module named requestsWarning: Command failed: /bin/sh -c python ./build/build_app_engine_package.py src out/app_engineTraceback (most recent call last): File "./build/build_app_engine_package.py", line 12, in <module> import requestsImportError: No module named requests Use --force to continue.
安装
apt-get install -y python-requests后解决
go get collidermain出错
自动安装依赖出错,解决方法:
1. 先安装go环境
1.下载Go安装包wget https://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gztar xvf go1.5.3.linux-amd64.tar.gz2.创建本地GO代码目录mkdir -p $HOME/gopath/src3.编辑$HOME/.profile添加export GOROOT=$HOME/goexport GOPATH=$HOME/gopath export PATH=$PATH:$GOROOT/bin:$GOPATH/bin退出终端重新打开或者登陆,GO环境就安装配置好了
- 安装信令服务器的依赖
cd $GOPATH/srcwget http://www.golangtc.com/static/download/packages/golang.org.x.net.tar.gztar xvf golang.org.x.net.tar.gzgo install golang.org/x/net/websocket/cd -依赖项安装完后,我们安装collidermain命令服务器程序:go install collidermain
- WebRTC服务器的配置
- webrtc turn服务器的坑
- rfc5766-turn-server webrtc穿透服务器配置
- WebRTC穿透服务器防火墙配置问题
- webRTC:一、房间服务器的搭建(综述)
- WebRTC MCU 服务器
- Webrtc服务器搭建
- Webrtc服务器搭建
- WebRTC流媒体服务器 Kurento
- Webrtc服务器搭建
- webrtc随笔-apprtc服务器
- Webrtc服务器搭建
- Webrtc服务器搭建
- Webrtc服务器搭建 (coturn)
- webrtc服务器搭建
- WebRTC流媒体服务器:Kurento
- webrtc-房间服务器搭建
- Webrtc服务器搭建
- poj 初期基本搜索
- php 不能正常打印字符串
- Android ADT Eclipse编译FBReader详解
- d3.time.format时间模式
- Android使用Gradle统一配置依赖版本
- WebRTC服务器的配置
- JS的事件监听机制
- Mysql innodb 间隙锁
- MySQL半同步
- shiro扩展获得用户登录类型并提供cookie的方式记住用户密码
- mfc获取控件在对话框上的位置
- css盒子模型(3)
- Linux PC和ARM版的QT环境设置及到ARM移植&常见错误解决方法
- URL传参中需要处理的特殊字符及方法