WebRTC服务器——Licode 情况搭建_玖富娱乐主管发布


玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。

WebRTC效劳器——Licode 情况搭建

系统设置装备摆设

阿里云效劳器

Ubuntu 14.04.5 LTS

Docker 情况搭建

在一台空的机械上搭建docker情况,先要装置docker,实行下面的敕令便可:

apt-get update
apt-get install docker.io

实行下面的shell剧本:

#!/bin/sh

MIN_PORT=30000;
MAX_PORT=30050;
docker run --name licode -p  3000:3000 -p $MIN_PORT-$MAX_PORT:$MIN_PORT-$MAX_PORT/udp -p 3001:3001  -p 8080:8080 -e "MIN_PORT=$MIN_PORT" -e "MAX_PORT=$MAX_PORT" -e "PUBLIC_IP=your_ip_address" lynckia/licode

没错任何毛病的话,licode效劳会自动运转起来,检察port:

root@test:/git/docker# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      865/sshd        
tcp6       0      0 :::8080                 :::*                    LISTEN      4732/docker-proxy
tcp6       0      0 :::3000                 :::*                    LISTEN      4496/docker-proxy
tcp6       0      0 :::3001                 :::*                    LISTEN      4856/docker-proxy

有几点注重

  1. 须要把相干端口在阿里云效劳器上翻开,这里用到的端口有:
  • TCP 端口:8080 3000 3001
  • UDP 端口:30000/30050 UDP端口须要依照官方文档写,我本身最先运用了别的一个局限的端口,死活跑不起来。
  1. 不要用外洋的效劳器,这点现在没有注重到,最先在一台香港的效劳器上搭建,一向报一个TURN效劳器的题目,厥后在国内的机械上的试了一下才经由过程,应该是TURN效劳器穿透的时刻有题目。

末了能够在Chrome或许火狐浏览器中输入地点:

http://your_ip_address:3001

作者在一台Mac和一台andorid上测试的,看一下结果,就不露脸了~~

编译情况搭建

先依照官方文档的步调操纵:

克隆代码

git clone https://github.com/lynckia/licode.git
cd licode

装置依靠

装置Licode依靠的组件:

./scripts/installUbuntuDeps.sh

装置Licode

装置LIcode的各个组件:

./scripts/installNuve.sh
./scripts/installErizo.sh  

装置实例

./scripts/installBasicExample.sh

设置装备摆设情况

由于是在阿里云效劳器上搭建情况,有些关于效劳器地点的设置装备摆设须要修正,在licode_config.js中把下面的字段改成阿里云效劳器的外网IP或许域名:

config.erizoController.publicIP = 'your_ip_address'; 
config.erizoController.hostname = 'your_ip_address';
config.erizoAgent.publicIP = 'your_ip_address'; //default value: ''

改一下网卡的名字,一样平常都是eth0:

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。-
config.erizoAgent.networkinterface = 'eth0'; //default value: '':w

运转Licode

启动Licode效劳:

./scripts/initLicode.sh

启动Licode实例:

./scripts/initBasicExample.sh

关于设置装备摆设的一些题目

在浏览器内里输入下面的URL以后:

http://your_ip_address:3001

浏览器会报下面的毛病:

ICE failed, add a TURN server and see about:webrtc for more details

看一下licode的设置装备摆设文件licode_config.js,设置装备摆设ICE server的处所:

 config.erizoController.iceServers = [{'url': 'stun:stun.l.google.com:19302'}]; // default value: [{'url': 'stun:stun.l.google.com:19302'}]

只要一个STUN效劳器链接,看来是须要本身增加一个TURN效劳器,作者本身在当地搭建了一个coturn效劳器,详细流程能够参考此链接,作者接纳的是编译装置。

设置装备摆设coturn效劳

在收集上搜刮了许多材料来设置装备摆设coturn,许多都没有胜利,下面是作者本身机械上的设置装备摆设:

#若是多网卡,记得此处设置为和你所用监听的IP相对应的eth 
listening-device=eth0
listening-ip=your_local_address
external-ip=your_external_address
listening-port=3478
relay-device=eth0
min-port=30000
max-port=30050
Verbose
fingerprint
#webrtc须要运用此选项 
lt-cred-mech
#use-auth-secret
#static-auth-secret=123456
#之前turnadmin中-r参数的值,此处要对应 
realm=demo
stale-nonce
#能够增加用户名和暗码 
user=demo:123456

#测试时期能够运用example/etc中的pem,本身盘算的话须要用到openssl,要领为: #sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/    turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 

#填写pem目次便可,如 
#cert=/root/cert/_cert.pem
cert=/root/cert/mycert.pem
#pkey=/root/cert/_pkey.pem
pkey=/root/cert/mycert.key
no-loopback-peers
no-multicast-peers
mobility
no-cli

关于怎样增加用户名和暗码,怎样设置装备摆设证书须要自行解决。

启动coturn效劳

实行下面的敕令:

turnserver -c path/turnserver.conf

遇到下面一堆log不要惊惶,这不是毛病的log,只是在监听事宜:

1112: timer_event_handler: timeout 0xc449b0: timer_handler
1113: timer_event_handler: timeout 0xc461b0: rtcp_map_timeout_handler
1113: timer_event_handler: timeout 0x7f2acc001c90: timer_handler
1113: timer_event_handler: timeout 0x7f2acc002ea0: timer_timeout_handler
1113: timer_event_handler: timeout 0x7f2ac4001c90: timer_handler
1113: timer_event_handler: timeout 0x7f2ac4002ea0: timer_timeout_handler
1113: timer_event_handler: timeout 0x7f2ac8001d30: timer_handler

修正Licode设置装备摆设文件

增加了turn 选项:

config.erizoController.iceServers = [{'url': 'stun:stun.l.google.com:19302'},{'url':'turn:your_external_address:3478','username':'demo','credential':'123456'}]; // 

末了重启licode效劳和实例,在地点栏在此输入地点,若是要求TURN穿透,coturn效劳会有相似下面的log:

86: read_client_connection:4436:start
86: read_client_connection: data.buffer=0x7f26040033ec, data.len=100
86: session 000000000000000005: peer 10.0.42.1 lifetime updated: 300
86: session 000000000000000005: realm <demo> user <demo>: incoming packet CREATE_PERMISSION processed, success
86: write_client_connection:4220:start
86: write_client_connection: prepare to write to s 0x7f2604028170
86: write_client_connection:4243:end
86: read_client_connection:4542:end
86: udp_server_input_handler:666:end
86: udp_server_input_handler:628:start
86: read_client_connection:4436:start
86: read_client_connection: data.buffer=0x7f26040033ec, data.len=140
86: handle_turn_send:2916:start
86: handle_turn_send:3011:end
86: session 000000000000000005: realm <demo> user <demo>: incoming packet SEND processed, success
86: udp_server_input_handler:666:end
86: udp_server_input_handler:628:start
86: read_client_connection:4436:start
86: read_client_connection: data.buffer=0x7f260401816c, data.len=140

浏览器掌握台上有时会有下面的log:

  ICE failed, your TURN server appears to be broken, see about:webrtc for more details
  

这是你的turnserver没有设置装备摆设好,若是衔接胜利,终究浏览器掌握台会有下面的链接胜利的log:

DEBUG:  Event: ice-state-change erizo.js:28:39
DEBUG:  Event: icestatechanged erizo.js:28:39
INFO:  341271403301651300 - iceConnectionState: connected erizo.js:28:39
DEBUG:  Event: onAddStream erizo.js:28:39
DEBUG:  Event: stream-added erizo.js:28:39
DEBUG:  Event: signaling_message_erizo
-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。