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