一、概述
1.环境描述
- CentOS 7.3
- Node v14.13.1
- gcc 8.3.1
- python 2.7
- npm 7.23.0
- cnpm 7.0.0
2.mediasoup-demo:使用的最新版本的:
https://github.com/versatica/mediasoup-demo.git
git clone https://github.com/versatica/mediasoup-demo.git cd mediasoup-demo git checkout v3 ,//此处要切换到v3版本
二、具体操作步骤
1.mediasoup-demo的目录结构
2.cd 到server目录并执行 npm/cnpm install
3.在当前目录下执行:cp config.example.js config.js ,ps:复制config.example.js为config.js,完成后结果如下图所示:
4.执行vim config.js 对其内容进行更改该
a.把ssl证书改成你自己的,并把端口改为443
b.更改webRtcTransportOptions和plainTransportOptions的IP地址
c.此时的config.js就更改完成了。
5.将目录切换到mediasoup-demo的app目录
a.执行npm install,等待执行完成
b.使用vim 打开gulpfile.js并更改其默认端口为80(这个端口你可以随便设置,也可以不更改)
c.找到 app->lib目录下的urlFactory.js,使用vim打开,并更改其端口号,因为再server中的端口改为了443,所以这里也需要改为443.
d.使用gulp命令打包app,会在 server的public目录下生成相关的文件
e.新建一个简单的Https服务,并把在mediasoup-demo ---->server------>public 目录下的内容发布到此服务上。server的代码如下:
'use strict'//使用严格的javascript语法 const https = require('https'); const express = require('express'); const serve_index = require('serve-index'); const fs = require('fs'); const options={ key: fs.readFileSync('/csr/你自己的.key'), cert: fs.readFileSync('/csr/你自己的.top.pem') }; const app = express(); //将public目录发布出去 app.use(serve_index('./public')); app.use(express.static('./public')); const https_server = https.createServer(options,app); https_server.listen(80);
f.npm start server.js 启动这个简单的服务区
g.切换到mediasoup-demo --->server目录执行npm start server.js启动mediasoup-demo的服务
h.在浏览器中输入https://ip地址:80/index.html 就可以查看具体的效果了
i.效果图:因为我是台式电脑,所以这个截图是在手机上的展示效果。
三、遇到的问题
1.mediasoup-demo server.js绑定端口失败:RTC:PortManager::Bind() | throwing MediaSoupError:port bind failed due to address not available
解决办法:问题产生的原因是mediasoup-demo server目录下的config.js的webRtcTransportOptions和plainTransportOptions的IP地址没有配置对,把ip地址配置成0.0.0.0就没问题了。
2.mediasoup-demo app目录下执行npm install时报错 :Error: Invalid tag name ">=^16.0.0": Tags may not have any characters that encodeURIComponent encodes
解决办法:执行npm install --legacy-peer-deps