本系列博客主要记录一对一WebRTC视频通话实现过程中的一些重点,代码全部进行了注释,便于理解WebRTC整体实现。
本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习,梳理总结后写下文章,对音视频相关内容感兴趣的读者,可以点击观看课程网址:零声教育
一对一WebRTC视频通话系列往期博客
一对一WebRTC视频通话系列(一)—— 创建页面并显示摄像头画面
一对一WebRTC视频通话系列(二)——websocket和join信令实现
一对一WebRTC视频通话系列(三)——leave和peer-leave信令实现
一对一WebRTC视频通话系列(四)——offer、answer、candidate信令实现
一对一WebRTC视频通话系列(五)——综合调试和功能完善
一对一WebRTC视频通话系列(六)——部署到公网
一、启动coturn
首先进入到
coturn
目录,利用
# nohup是重定向命令,输出都将附加到当前目录的 nohup.out 文件中; 命令后加 & ,后台执行起来后按ctr+c,不会停止sudonohup turnserver -L0.0.0.0 -a-u sxl:zxc -v-f-r nort.gov &
//前台启动
sudo turnserver -L0.0.0.0 -a-u sxl:zxc -v-f-r nort.gov
然后查看相应的端口号
3478
是否存在进程
sudolsof-i:3478
效果:
二、nginx环境配置
sudoapt-get update
#安装依赖:gcc、g++依赖库sudoapt-getinstall build-essential libtool
#安装 pcre依赖库(http://www.pcre.org/)sudoapt-getinstall libpcre3 libpcre3-dev
#安装 zlib依赖库(http://www.zlib.net)sudoapt-getinstall zlib1g-dev
#安装ssl依赖库sudoapt-getinstall openssl
#下载nginx 1.15.8版本wget http://nginx.org/download/nginx-1.15.8.tar.gz
tar xvzf nginx-1.15.8.tar.gz
cd nginx-1.15.8/
# 配置,一定要支持https
./configure --with-http_ssl_module
# 编译make#安装sudomakeinstall
nginx默认安装目录为:/usr/local/nginx
可以利用下面三条命令进行操作:
启动:sudo /usr/local/nginx/sbin/nginx
停止:sudo /usr/local/nginx/sbin/nginx s stop
重新加载配置文件:sudo /usr/local/nginx/sbin/nginx s reload
先启动nginx,然后利用下列命令查看是否启动成功
sudops-ef|grep nginx
效果如下:
三、配置web服务器
首先产生证书:
mkdir-p ~/cert
cd ~/cert
# CA私钥
openssl genrsa -out key.pem 2048# 自签名证书
openssl req -new-x509-key key.pem -out cert.pem -days1095
配置文件主要包括3部分:
(1)配置自己的证书
ssl_certificate /home/sxl/cert/cert.pem; // 注意证书所在的路径
ssl_certificate_key /home/sxl/cert/key.pem;
(2)配置主机域名或者主机IP
upstream websocket {
server 192.168.226.3:8099;}
server_name 192.168.226.3;
(3)端口
客户端与Nginx服务器监听的端口:
8098
客户端与Nginx服务器监听的端口:
8099
完整配置文件:
/usr/local/nginx/conf/conf.d/webrtc-websocket-proxy.conf
map $http_upgrade$connection_upgrade{
default upgrade;'' close;}
upstream websocket {
server 192.168.226.3:8099;}
server {
listen 8098 ssl;#ssl on;
ssl_certificate /home/sxl/cert/cert.pem;
ssl_certificate_key /home/sxl/cert/key.pem;
server_name 192.168.226.3;
location /ws {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_connect_timeout 4s;
proxy_read_timeout 6000s;
proxy_send_timeout 6000s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;}}
之后需要配置nginx主配置文件
include /usr/local/nginx/conf/conf.d/*.conf;
配置完成后,输入:
sudo /usr/local/nginx/sbin/nginx
//如果修改配置,重新加载
sudo /usr/local/nginx/sbin/nginx -s reload
如果配置成功,运行不会报错,效果如下图所示:
如果80端口被占,会发生报错如下:
此时采用
kil l-9 80
删除进程是无效的,需要输入下列命令:
netstat -ntlp|grep80fuser-k80/tcp
之后便可以正常运行。
信令服务器后台执行:
sudonohupnode ./signal_server.js &
版权归原作者 君莫笑lucky 所有, 如有侵权,请联系我们删除。