搭建服务器流程:

注意:每个人搭建服务器可能会出现奇奇怪怪的问题,照着我的方法可能会出现其他问题,不要着急,耐心搭建,确实比较烦。

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.2npm -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-webtestpython -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-gogo 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相关参数)```shellvim /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");

就基本完成了,结果如下:

WebRTC使用Linux搭建服务器(一)

WebRTC使用Linux搭建服务器(二)相关推荐

  1. [TCP/IP] Linux 搭建服务器局域网

    文章目录 [TCP/IP] Linux 搭建服务器局域网 1. 使用python内置库http.server 2. 使用Http-Server [TCP/IP] Linux 搭建服务器局域网 1. 使 ...

  2. Linux搭建服务器

    文章目录 Linux搭建服务器 1.基础环境配置 1.1配置centos7 1.2安装xshall 1.3安装xftp7 2.配置jdk 1.8 ==第一步 卸载系统自带的OpenJDK以及相关的ja ...

  3. linux搭建服务器ppt,Linux服务器远程控制搭建.ppt

    <Linux服务器远程控制搭建.ppt>由会员分享,可在线阅读,更多相关<Linux服务器远程控制搭建.ppt(14页珍藏版)>请在装配图网上搜索. 1.企业服务器远程控制搭建 ...

  4. 完整linux搭建服务器过程,Linux搭建服务器步骤

    1.安装xshll 2.使用xshell连接上Linux 3.使用xshell安装vsftpd 3.1:使用命令yum install vsftpd 3.2:输入y\n决定要不要安装 3.3:当出现& ...

  5. linux搭建服务器的配置

    1.安装好linux系统之后,如果无法连接网络,先设置代理,配置apt的流量走代理: #命令 vim /etc/apt/apt.conf #配置文件内容 Acquire::http::Proxy &q ...

  6. Qt网编实现音乐播放器的使用(Linux搭建服务器)

    一.界面效果 功能: 搜索歌曲:客户端用户输入歌曲名,点击显示歌曲信息,服务器根据客户端发送来的名字在歌曲表内查询查询到的话,则将对应的歌曲文件数据发送到客户端新创建的一个文件夹内,然后加入到多媒体播 ...

  7. 用linux搭建服务器的

    转载于:https://www.cnblogs.com/zhangxiaofei/p/6518001.html

  8. 使用LINUX云服务器搭建web、小程序服务器MySql+Java+Tomcat

    记小白第一次使用LINUX搭建web.小程序服务器 MySql+Java+Tomcat (很全的安装过程收集整合) 一.使用LINUX搭建服务器的原因 准备工具 二.下载配置 2.1 阿里云服务器的购 ...

  9. 泰拉瑞亚加mod之后如何搭建服务器进行联机

    有时间会重新写一下,整明白点 可以移步http://www.dwlufvexyu.com/%e6%b3%b0%e6%8b%89%e7%91%9e%e4%ba%9a%e6%89%93%e4%b8%8am ...

最新文章

  1. laravel 如何自定义全局的方法/类
  2. 交叉熵损失函数在多分类深度学习中的应用 转
  3. Ubuntu下 安装 window 虚拟机
  4. php面向对象公共类,PHP面向对象(一):类与类的实例化
  5. 用jQuery实现页面遮罩弹出框
  6. java开发是什么_java开发到底是做什么的
  7. TranslateAnimation详解
  8. C#/VB.NET 读取条码类型及条码在图片中的坐标位置
  9. APP - 重磅消息!微信测试无需新手机号注册新微信号功能
  10. pluck()取表中一列中所有值组成数组
  11. 2021年彬州范公中学高考成绩查询,彬州市拟奖励81人名单公布!快看有你认识的吗?...
  12. 怎么把两个PDF合并成一个?这几种操作轻松合并
  13. rabbit MQ的rpc功能详解
  14. 阿里巴巴离职DBA 35岁总结的职业生涯(转)
  15. Java和部门管理的那些事情
  16. 百度音乐2013 8.2.8 去广告VIP绿色版|zd423作品
  17. 计算机分类汇总表格,Excel分类汇总使用全攻略
  18. pink老师HTML详细笔记(b站视频)
  19. HOKA ONE ONE宣布潘俊帆成为品牌飞耀大使
  20. 系统调试利器:挡板实战

热门文章

  1. 湖北省2022年工业废水循环利用试点申报条件、程序
  2. NTL::SHA256:hash映射(不可逆)(生成数据哈希值)
  3. 混合精度训练-Automatic Mixed Precision
  4. LVGL8学习之Shadow Styles
  5. 要跳槽的再等等,先看看这份面经……
  6. oracle以查询多括号报错,oracle点滴积累
  7. html炫酷在线,程序猿必备的10款超炫酷HTML5 Canvas插件
  8. 【Android 逆向】x86 汇编 ( 参考资料 | Intel 官方的文档 | x86 汇编中文文档 | 汇编指令查询器 )
  9. 电脑文字转语音怎么弄?这些方法值得一试
  10. Nimbus二storm启动nimbus源码分析-nimbus.clj