基于docker快速搭建mediasoup开发测试环境

基于docker快速搭建mediasoup开发测试环境

一、基础环境

  1. windows10
  2. docker windows桌面版
  3. visual studio code

备注:docker和vmmare不能同时使用。自行从网上搜到解决办法后,
管理员方式打开终端,执行如下命令后重启生效。

启动docker
bcdedit /set hypervisorlaunchtype auto
启动虚拟机
bcdedit /set hypervisorlaunchtype off

二、环境部署

2.1 使用docker安装ubuntu系统

2.1.1 配置文件

创建文件Dockerfile,内容如下

FROM ubuntu
RUN apt-get update && \
    apt-get install -y build-essential pip net-tools iputils-ping iproute2 curl

RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
RUN apt-get install -y nodejs
RUN npm install -g watchify

EXPOSE 3000
EXPOSE 2000-2020
EXPOSE 10000-10100
2.1.2 运行命令

docker build -t ubuntu .

备注:如果报错如下
failed to solve with frontend dockerfile.v0: failed to create LLB definition:
进行如下调整
Docker 桌面 -> 设置 -> Docker 引擎 ->“features”: { buildkit: true}将"features": { buildkit: false}.

2.2 使用docker启动ubuntu系统

2.2.1 配置文件

创建文件docker-compose.yml,内容如下

version:  "3"
services:
  linux:
    container_name: "ubuntu-linux"
    image:  "ubuntu"
    restart:  "always"
    tty:  true
    ports:
      - "3000:3000"
      - "2000-2020:2000-2020"
    volumes:
      - "E:\\docker Tutorials/mediasoup/src:/user/src"

备注:
1)每一列必须对齐
2)E:\\docker必须用双\

2.2.2 运行命令

docker-compose up -d

2.3 使用vscode搭建远程开发调试环境

2.3.1 依赖软件

1)在vscode中安装 docker
2)在vscode中安装 Dev Containers

2.3.2 运行方法

1)点击vscode docker按钮
2)在CONTAINERS中找到ubuntu虚拟机
3)右键ubuntu虚拟机,选择attach visual studio code
4) 此时会打开一个新的vscode界面
5)选择打开路径/user/src即可

2.4 使用npm安装环境

1)创建example文件夹,执行命令npm init
2)生成package.json;内容例子如下

{
  "name": "example",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "type": "module"
}

备注:
最要新增一行 "type": "module"
3)执行命令 npm install express httpolyglot socket.io socket.io-client --save
4) 执行命令 npm install mediasoup
可能会报错,解决如下

export http_proxy=127.0.0.1:8080
export https_proxy=127.0.0.1:8080

4)执行命令 npm install mediasoup-cient
可能会报错,解决如下
换个新的控制台

2.4 测试代码与运行

2.4.1 测试http服务器

测试代码如下
创建app.js文件

import express from 'express'
const app = express()

import https from 'httpolyglot'
import fs from 'fs'
import path from 'path'
const __dirname = path.resolve()

app.get('/',(req,res)=>{
    res.send('Hello from mediasoup app!');
})

const options = {}

const httpsServer = https.createServer(options,app)
httpsServer.listen(3000,() =>{
    console.log('listening on port: ' + 3000)
})  

启动命令
node app.js

本地打开浏览器 http://localhost:3000/
出现Hello from mediasoup app!表示测试环境搭建完毕

2.4.2 测试https服务器

测试代码如下
修改app.js文件,

const options = {}

改为

const options = {
    key: fs.readFileSync('./server/ssl/key.pem','utf-8'),
    cert: fs.readFileSync('./server/ssl/cert.pem','utf-8')
}

创建key.pem和cert.pem

openssl genrsa -out test.key 2048
openssl req -new -x509 -days 3650 -key test.key -out test.crt
openssl rsa -in test.key -out key.pem
openssl x509 -in test.crt -out test.pem

本地打开浏览器 https://localhost:3000/
出现Hello from mediasoup app!表示https测试环境搭建完毕

三、视频会议测试demo

结果展示:包含一个苹果手机,一个ipad,一个win10pc。
在这里插入图片描述
demo下载地址:

https://github.com/jamalag/mediasoup3

如果访问不通:可以在csdn下载
https://download.csdn.net/download/RenZuoym/87294113

本文基于如下视频整理:(视频也是搬运工,真正作者是github地址 jamalag )
https://www.bilibili.com/video/BV1544y1T7tF

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值