mediasoup-demo公网安装部署

一、概述

  1.环境描述

  1. CentOS 7.3
  2. Node v14.13.1
  3. gcc 8.3.1
  4. python 2.7
  5. npm 7.23.0
  6. 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

  

原文地址:https://www.cnblogs.com/tony-yang-flutter/p/15263290.html