搭建webrtc服务器

基于webrtcapprtc示例发布在公网https://apprtc.webrtc.org上,搭建该系统需要房间服务器、信令服务器、TURN穿透服务器。最好使用VPN搭建环境,否则会遇到网络引起的各种错误。

房间服务器apprtc

项目源码地址: https://github.com/webrtc/apprtc

房间服务器搭建参考github中的步骤即可。

修改apprtc/out/app_engine/constans.pyTURN_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下的三个文件夹的链接,或者直接将collidercollidermaincollidertest三个文件夹拷贝到~/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-serverTURNSERVER_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服务器搭建

相关推荐