基于webrtc
的apprtc
示例发布在公网https://apprtc.webrtc.org
上,搭建该系统需要房间服务器、信令服务器、TURN
穿透服务器。最好使用VPN
搭建环境,否则会遇到网络引起的各种错误。
房间服务器apprtc
项目源码地址: https://github.com/webrtc/apprtc
房间服务器搭建参考github
中的步骤即可。
修改apprtc/out/app_engine/constans.py
,TURN_BASE_URL
需要填写本机的ip
地址,使用localhost
会有错误。
TURN_BASE_URL = 'http://192.168.1.103'
TURN_URL_TEMPLATE = '%s/turn.php?username=%s&key=%s'
CEOD_KEY = 'helloworld'
WSS_INSTANCE_HOST_KEY = 'host_port_pair'
WSS_INSTANCE_NAME_KEY = 'vm_name'
WSS_INSTANCE_ZONE_KEY = 'zone'
WSS_INSTANCES = [{
WSS_INSTANCE_HOST_KEY: '192.168.1.103:8089',
WSS_INSTANCE_NAME_KEY: 'wsserver-std',
WSS_INSTANCE_ZONE_KEY: 'us-central1-a'
}, {
WSS_INSTANCE_HOST_KEY: '192.168.1.103:8089',
WSS_INSTANCE_NAME_KEY: 'wsserver-std-2',
WSS_INSTANCE_ZONE_KEY: 'us-central1-f'
}]
修改apprtc/out/app_engine/apprtc.py
def get_wss_parameters(request):
ws_host_port_pair = request.get('wshpp')
ws_tls = request.get('wstls')
if not ws_host_port_pair:
ws_host_port_pair = constants.WSS_HOST_PORT_PAIR
if ws_tls and ws_tls == 'false':
wss_url = 'ws://' + ws_host_port_pair + '/ws'
wss_post_url = 'http://' + ws_host_port_pair
else:
wss_url = 'ws://' + ws_host_port_pair + '/ws'
wss_post_url = 'http://' + ws_host_port_pair
return (wss_url, wss_post_url)
信令服务器collider
项目源码地址:https://github.com/webrtc/apprtc/tree/master/src/collider
安装Go
语言运行环境
$ sudo apt-get install golang-go
在Home
目录下新建文件夹,设置GOPATH
环境变量
$ mkdir -p ~/collider/src
$ export GOPATH=~/collider
在~/collider/src
下设置apprtc/src/collider
下的三个文件夹的链接,或者直接将collider
,collidermain
,collidertest
三个文件夹拷贝到~/collider/src
目录下。
$ cd ~/collider/src
$ cp -rf ~/apprtc/src/collider/collider ./
$ cp -rf ~/apprtc/src/collider/collidermain ./
$ cp -rf ~/apprtc/src/collider/collidertest ./
$ go get collidermain
$ go install collidermain
成功编译后会在collider目录下生成bin和pkg文件夹,可执行程序在bin中
修改main.go
的代码填上自己的ip
地址
var roomSrv = flag.String("room-server","http://192.168.1.103:8080/", "The origin of the room
server")
运行信令服务器
$ ~/collider/bin/collidermain -port=8089 -tls=false
TURN
服务器
下载解压资源
$ wget http://rfc5766-turn-server.googlecode.com/files/turnserver-1.8.6.0-binary-linux-wheezy-ubuntu-mint-x86-32bits.tar.gz
$ tar -zxvf turnserver-1.8.6.0-binary-linux-wheezy-ubuntu-mint-x86-32bits.tar.gz
安装服务器
$ sudo apt-get update
$ sudo apt-get install gdebi-core
$ sudo gdebi *.deb
编辑配置文件/etc/default/rfc5766-turn-server
,TURNSERVER_ENABLED=1
去掉注。
编辑配置文件/etc/turnserver.conf
listening-device=eth0
relay-device=eth0
Verbose
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=helloword
user=helloword:0x06b2afcf07ba085b7777b481b1020391
user=helloword:helloword
stale-nonce
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
no-loopback-peers
no-multicast-peers
生成签名证书
sudo openssl req -x509 -newkey rsa:2048 -service coturn
start;keyout /etc/turn_server_pkey.pem -out
/etc/turn_server_cert.pem -days 99999 -nodes
启动TURN
服务器
service coturn start
参考文章
基于webrtc的apprtc服务器的搭建
第六章 Webrtc服务器搭建
Webrtc服务器搭建