赞
踩
搭建服务器流程:
注意:每个人搭建服务器可能会出现奇奇怪怪的问题,照着我的方法可能会出现其他问题,不要着急,耐心搭建,确实比较烦。
1、安装JDK
- apt-get update
-
- apt-get install openjdk-8-jdk
-
- java -version
- #java version "1.8.0_181"
2、安装node.js
- apt-get install nodejs-legacy
- apt-get install npm
- node --version
- #v4.2.6
- npm --version
- #3.5.2
-
- npm -g install grunt-cli
- grunt --version
- #grunt-cli v1.3.2
注意:这一步我出现过好多问题,有时候会出现grunt没搭建成功,有时候搭建成功了但是查找不了版本号,如果查找不了版本号,进行如下操作:
- # 安装n模块
- npm install -g n
- # 升级nodejs到最新stable版本
- n stable
- # 升级最新npm
- npm install npm@latest -g
3、安装Python和Python-webtest (必须2.7以上包括2.7)
- apt-get install python
- apt-get install python-webtest
-
- python -V
- #Python 2.7.12
4、安装google_appengine
- wget https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.40.zip
- unzip google_appengine_1.9.40.zip
配置环境变量:
- vim /etc/profile
- export PATH=$PATH:/root/webrtc/google_appengine
按 :wq保存退出
执行:
source /etc/profile
5、安装go
- apt install golang-go
-
- go version
- #go version go1.6.2 linux/amd64
- #创建go工作目录
- mkdir -p /root/webrtc/goWorkspace/src
- #配置环境变量:在/etc/profile文件最后增加一行:
- export GOPATH=/root/webrtc/goWorkspace
- source /etc/profile
6、安装libevent
当前目录:
cd root/webrtc/
- wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
- tar xvf libevent-2.0.21-stable.tar.gz
- cd libevent-2.0.21-stable
- ./configure
- make install
7、安装apprtc
当前目录:
vim root/webrtc/
- git clone https://github.com/webrtc/apprtc.git(https变成git)
- #将collider的源码软连接到go的工作目录下
- ln -s /root/webrtc/apprtc/src/collider/collider $GOPATH/src
- ln -s /root/webrtc/apprtc/src/collider/collidermain $GOPATH/src
- ln -s /root/webrtc/apprtc/src/collider/collidertest $GOPATH/src
- #编译collidermain
- go get collidermain
- go install collidermain
(如果第一条代码安装失败,将https变成git)
如果后面两条编译失败,则执行:
- #go get collidermain: 被墙
- #报错: package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket"
- #执行:
- mkdir -p $GOPATH/src/golang.org/x/
- cd $GOPATH/src/golang.org/x/
- git clone https://github.com/golang/net.git net
- go install net
8、安装coturn
目录:
vim root/webrtc/
- wget http://coturn.net/turnserver/v4.5.0.7/turnserver-4.5.0.7.tar.gz
- tar xvfz turnserver-4.5.0.7.tar.gz
- cd turnserver-4.5.0.7
- ./configure
- make install
配置与运行:
1、coturn Nat穿透服务器
配置防火墙,允许访问3478端口(含tcp和udp,此端口用于nat穿透)
- #启动 47.94.57.236:内网ip(阿里云后台可以看到内外网ip)
- nohup turnserver -L 172.31.247.136 -a -u dongnao:12345 -v -f -r nort.gov &
- #账号dongnao 密码:12345 这一步随便给,但是后面配置apprtc时需要用到
- #命令后加 & ,执行起来后按 ctr+c,不会停止
- ```
-
- ```shell
- #开启新窗口 执行
- netstat -ntulp | grep turnserver #或者 lsof -i:3478
- #输出大致这样的成功
- tcp 0 0 127.0.0.1:5766 0.0.0.0:* LISTEN 16848/turnserver
- tcp 0 0 172.31.247.136:3478 0.0.0.0:* LISTEN 16848/turnserver
- tcp 0 0 172.31.247.136:3478 0.0.0.0:* LISTEN 16848/turnserver
- udp 0 0 172.31.247.136:3478 0.0.0.0:* 16848/turnserver
- udp 0 0 172.31.247.136:3478 0.0.0.0:* 16848/turnserver
- ```
2、collider 信令服务器
配置防火墙,允许访问8089端口(tcp,用于客户端和collider建立websocket信令通信)
- mkdir -p /cert
- cd /cert
- # CA私钥
- openssl genrsa -out key.pem 2048
- # 自签名证书
- openssl req -new -x509 -key key.pem -out cert.pem -days 1095
- nohup $GOPATH/bin/collidermain -port=8089 -tls=true -room-server="https://47.94.57.236:8080" &
-
- #同样检查是否成功
- netstat -ntulp | grep collider
- tcp6 0 0 :::8089 :::* LISTEN 16864/collidermain
3、apprtc 房间服务器
- 配置文件修改(主要是配置apprtc对应的conturn和collider相关参数)
-
- ```shell
- vim /root/webrtc/apprtc/src/app_engine/constants.py
- #47.75.90.219 外网ip
主要修改红色部分的IP,自己仔细看一下,别修改错误。
- #编译
- cd /root/webrtc/apprtc
- npm install
- grunt build
- #如果出现 : No module named requests
- ```
-
- > **错误: requests模块不存在**
- ##### 安装pip
- >
- > 下载setup-python工具
- >
- > ```shell
- > # 有一行命令太长了,$开头的是一行命令
- > $cd /root/webrtc
- > $wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --no-check-certificate
- > $chmod +x setuptools-0.6c11-py2.7.egg
- > $./setuptools-0.6c11-py2.7.egg
- > $wget https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz
- > $tar -xf pip-1.5.4.tar.gz
- > $python setup.py install(如果不成功,则网上重新下载setuptools,然后在setuptools目录下下载就可以了)
- > $pip install requests(在目录下安装 cd pip-数字,具体看自己版本 )
- > #安装完成后再执行编译:
- > #cd /root/webrtc/apprtc
- > #grunt build
启动:
- #172.24.159.143 : 内网ip
- nohup dev_appserver.py --host=172.24.159.143 /root/webrtc/apprtc/out/app_engine --skip_sdk_update_check &
-
- #检查
- netstat -ntulp | grep 8080
- #输出下列内容
- tcp 0 0 172.31.4.236:8080 0.0.0.0:* LISTEN 17032/python
以上基本实现服务器搭建成功,现在就可以访问服务器了:
http://47.94.57.236:8080,
可以在网页上面实现服务器了,如果网页打不开,应该是以上的软件没有搭建好,重新搭建,找错误可能 比较麻烦。
4、nginx
反向代理apprtc,使之支持https访问,如果http直接访问apprtc,则客户端无法启动视频音频采集(必须得用https访问)
在nginx目录执行
- ./configure --with-http_ssl_module
- apt-get install libpcre3-dev
- ./configure --with-http_ssl_module
- make install
配置nginx.conf
vim /usr/local/nginx/conf/nginx.conf
然后将下面代码放进去:
- events {
- worker_connections 1024;
- }
- http{
- upstream roomserver {
- server 47.94.57.236:8080;
- }
- server {
- listen 80;
- server_name 47.94.57.236;
- return 301 https://$server_name$request_uri;
- }
- server {
- root /usr/share/nginx/html;
- index index.php index.html index.htm;
- listen 443 ssl;
- ssl_certificate /cert/cert.pem;
- ssl_certificate_key /cert/key.pem;
- server_name 47.94.57.236;
- location / {
- proxy_pass http://roomserver$request_uri;
- proxy_set_header Host $host;
- }
- location ~ .php$ {
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi_params;
- }
- }
- }
只需要将ip改成自己公网的ip就可以了。
启动:
/usr/local/nginx/sbin/nginx
以上,服务器可以打开摄像头和麦克风了。
可能会出现浏览器通话跨域问题:
Messages:Failed to start signaling: Failed to execute 'pushState' on 'History'
解决办法:
vim /root/webrtc/apprtc/out/app_engine/js/appcontroller.js
加入:
- #搜索 pushState 增加:
- > roomLink=roomLink.substring("http","https");
就基本完成了,结果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。