Mediasoup Demo-v3笔记(五)——Mediasoup 的启动

  Mediasoup是由两部分组成的,一部分是js的控制模块,一部分是c++的传输模块,在这里我们用mediasoup demo的代码开始,分析整个进程的启动过程

1、在mediasoup-demo-3的server.js中,调用启动方法

  mediasoup-demo-3是一个demo代码,在这里,我们可以直接调用node server.js来启动整个过程,在server.js中,我们可以看到一个run()函数,其中调用runMediasoupWorkers();方法来启动mediasoup模块的worker进程

在这里插入图片描述
在runMediasoupWorkers()函数中,我们可以看到其根据配置,调用mediasoup.createWorker()方法来启动多个worker
在这里插入图片描述
这里的mediasoup是调用哪里呢?其实我们可以从上面的引用模块中知道,其就是引入了mediasoup库,在这里引入的时候,就会引入mediasoup的index.js中的代码
在这里插入图片描述

2、在mediasoup-3库中调用启动逻辑

在mediasoup库的index.js中,我们可以看到createWorker()函数
在这里插入图片描述

在上面的createWorker()函数的代码片段中我们会发现,其调用了new Worker来创建一个Worker对象,在这里,就会调用Worker.js中的构造方法,来创建一个Worker对象,
在这里插入图片描述
Worker的构造函数非常长,其主要是先准备了各种环境参数,然后调用spawn方法创建一个child对象
在这里插入图片描述
其中spawnBin就会调用c++的库,启动整个c++的进程

在这里插入图片描述

在这里插入图片描述

3、在c++中的main.cpp中启动c++程序

在Worker.js中创建Worker时,调用spawn启动c++程序,就会到main.cpp中,执行启动任务
在这里插入图片描述
至此,整个Mediasoup就启动起来了,在实际的应用中,mediasoup-demo-3库是一个demo库,我们可以根据自己的需要来创建自己的业务过程,然后调用mediasoup-3库中的js代码启动程序


后记
  个人总结,欢迎转载、评论、批评指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zoomit 安装与使用

Zoomit 安装与使用 1)工具介绍 ZoomIt 是一款非常实用的投影演示辅助软件 ZoomIt 是一种在所有 Windows 设备上运行的工作的注释和缩放工具 2)下载地址 地址:https://zoomit.en.softonic.com/ 3)安装教程 第一步 第二步 …

国外服务器全攻略,国外服务器的特点和优势是什么?

随着互联网的快速发展,越来越多的企业和个人选择将网站、应用程序等部署在国外服务器上。那么,国外服务器有哪些特点和优势呢?本文将对这一问题进行详细探讨。 一、国外服务器的特点 1.全球化的网络连接:国外服务器通常拥有全球化…

ThreeJS官方示例

1 月球绕地球旋转 材质贴图的颜色显示可能和原图看起来不一致,需要设置色彩空间: 线性色彩空间(LinearSRGBColorSpace):根据光照强度均匀分布sRGB色彩空间(SRGBColorSpace):根据人…

svn和git的本质区别是什么

参考: https://blog.csdn.net/feiying0canglang/article/details/126550676 上边图中,跨越了区的箭头,它中间的区数据都会同步。例如:git checkout ,它是将本地仓库数据更新到暂存区和工作区的。\ 理解 gitlab和svn都…

计算机网络的体系结构的各层在整个过程中起到什么作用?

ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1.6 计算机网络体系结构(4)—专用术语_哔哩哔哩_bilibili 目录 &#x…

Springboot项目启动报错:Command line is too long问题解决

启动项目报错:Error running ‘xxxxxxxx’: Command line is too long. Shorten command line for ‘xxxxxxxx’ or also for Application default configuration 方法一 点击提示中的:default:然后在弹出窗口中选择:JAR xxxx xxx&#xff0…

DataKit迁移MySQL到openGauss

前言 本文将分享DataKit迁移MySQL到openGauss的项目实战,供广大openGauss爱好者参考。 1. 下载操作系统 https://www.openeuler.org/zh/download https://support.huawei.com/enterprise/zh/doc/EDOC1100332931/1a643956 https://support.huawei.com/enterprise…

JOSEF约瑟 静态中间继电器 RZY-600D 110VDC 六常开 导轨安装

RZ-D系列中间继电器 系列型号: RZY-004D中间继电器 RZL-004D中间继电器 RZY-022D中间继电器 RZL-022D中间继电器 RZY-112D中间继电器 RZL-112D中间继电器 RZY-202D中间继电器 RZL-202D中间继电器 RZY-002D中间继电器 RZL-002D中间继电器 RZY-060D中间继电器 RZL-060…

从CNN ,LSTM 到Transformer的综述

前情提要:文本大量参照了以下的博客,本文创作的初衷是为了分享博主自己的学习和理解。对于刚开始接触NLP的同学来说,可以结合唐宇迪老师的B站视频【【NLP精华版教程】强推!不愧是的最完整的NLP教程和学习路线图从原理构成开始学&a…

互斥锁/读写锁(Linux)

一、互斥锁 临界资源概念: 不能同时访问的资源,比如写文件,只能由一个线程写,同时写会写乱。 比如外设打印机,打印的时候只能由一个程序使用。 外设基本上都是不能共享的资源。 生活中比如卫生间,同一…

Windows 上面双网卡网络,配置为优先IPV4

多数网络游戏加速器是不支持IPV6的,即便支持IPV6也不好用,原因是IPV6在大陆并不是普及的状态,很多资源是没有的。 所以本文会教大家怎么让双IP栈的用户,怎么配置优先适用IPV4,并且IPV6也还可以用。 跟着我的步骤来&am…

Docker 和 Kubernetes:容器化时代的崛起与演变

在过去的十年间,容器化技术彻底改变了软件开发和部署的面貌。 Docker 的登场无疑是这场变革的催化剂,它将应用和服务的打包、分发、部署流程标准化,让开发者的生活变得更加简单。 紧随其后,Kubernetes 作为容器编排的领军者&#…

虹科分享丨汽车技术的未来:Netropy如何测试和确保汽车以太网的性能

来源:艾特保IT 虹科分享丨汽车技术的未来:Netropy如何测试和确保汽车以太网的性能 原文链接:https://mp.weixin.qq.com/s/G8wihrzqpJJOx5i0o63fkA 欢迎关注虹科,为您提供最新资讯! #汽车以太网 #车载网络 #Netropy …

STM32第一节——初识STM32

1 硬件介绍 1.1 硬件平台 配套硬件:以野火的STM32 F1霸道开发板为平台,若用的是别的开发板,可自己进行移植。 1.2 什么是STM32 STM32是由意法半导体(STMicroelectronics)公司推出的一系列32位的ARM Cortex-M微控制…

D. Gargari and Permutations

很好玩的一道类似LCS的DP 问题 定义dp(i) 为考虑最后一个字符串&#xff0c;且选择a&#xff08;i&#xff09;得到的最大LIS值 然后枚举所有小于i的位置&#xff0c;可以更新的条件是 所有的字符串中都有a[j]<a[i] 这个用map一处理就好了 #include<bits/stdc.h> usi…

腾讯云轻量应用Windows服务器如何搭建幻兽帕鲁Palworld私服?

幻兽帕鲁/Palworld是一款2024年Pocketpair开发的开放世界生存制作游戏&#xff0c;在帕鲁的世界&#xff0c;玩家可以选择与神奇的生物“帕鲁”一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。而帕鲁可以进行战斗、繁殖、协助玩家做农活&#xff0c;也…

Type-C平板接口协议芯片介绍,实现单C口充放电功能

在现代平板电脑中&#xff0c;Type-C接口已经成为了一个非常常见的接口类型。相比于传统的USB接口&#xff0c;Type-C接口具有更小的体积、更快的传输速度和更方便的插拔体验。但是&#xff0c;在使用Type-C接口的平板电脑上&#xff0c;如何实现单C口充电、放电和USB2.0数据传…

qt学习:tcp区分保存多个客户端

在前面文掌的tcp客服端服务端进行更改 qt学习&#xff1a;Network网络类tcp客户端tcp服务端-CSDN博客https://blog.csdn.net/weixin_59669309/article/details/135842933?spm1001.2014.3001.5501前面的服务端每次有新的客户端连接&#xff0c;就会覆盖掉原来的指针&#xff0…

uniCloud ---- 云存储

目录 概念 1. web界面 2. 客户端API或组件上传 API 自定义样式 选择指定后缀图片&#xff0c;且限制选择个数 手动上传 应用 3. 云函数上传文件到云存储 uni.chooseImage(OBJECT) uni.previewImage(OBJECT) uploadFile(Object object) 请求参数 响应参数 应用 概念…

Web11--Bootstrap

1、Bootstrap入门 1.1 Bootstrap简介 官网&#xff1a;Bootstrap中文网 1.2 Bootstrap引入 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1"…