一、概述
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
