上一篇worker简单的介绍了基础原理,今天聊下mediasoup Router,单纯从字面上理解就是地址路径,其实大家可以理解成房间的意思。

这里主要有一个参数,mediaCodecs 媒体编解码器,包括音视频解码的参数设置。

源代码中 https://github.com/versatica/mediasoup/blob/v3/lib/supportedRtpCapabilities.js 有支持的编解码的参数设置。

const mediaCodecs =
[{kind        : "audio",mimeType    : "audio/opus",clockRate   : 48000,channels    : 2},{kind       : "video",mimeType   : "video/H264",clockRate  : 90000,parameters :{"packetization-mode"      : 1,"profile-level-id"        : "42e01f","level-asymmetry-allowed" : 1}}
];const appData = {} //自定义的字段 房间,名字等等,这个const router = await worker.createRouter({ mediaCodecs, appData });

这里可以简单的理解成设置了一下服务端支持的媒体编解码的参数, 如果对音视频的编解码了解的朋友,应该能更进一步的认识,我现在只是简单的了解。

router 相关的属性

  • id
  • closed 是否是关闭
  • appData 自定义数据
  • observer 观察者,用户侦听房间的一些事件、状态等, 所有类下面都有观察者 集成于EventEmitter()

router 相关方法

  • close() 关闭房间,会出发routerclose事件
  • createWebRtcTransport(options) 创建webRTC通道
  • createPlainTransport(options) 创建普通通道
  • createPipeTransport(options) 管道通道

后续会研究介绍每个通道的区别;

 options = {listenIp: '', //必填enableSctp: sctp 协议的启用 默认是 false  //我也仅仅知道 sctp的话 服务端能够获取到transport的数据...}

可以看下文档PipeTransportOptions

  • pipeToRouter({ producerId, dataProducerId, router, listenIp }) // 对跨房间消费数据很方便,下面是官网给的例子
// Have two workers.
const worker1 = await mediasoup.createWorker();
const worker2 = await mediasoup.createWorker();// Create a router in each worker.
const router1 = await worker1.createRouter({ mediaCodecs });
const router2 = await worker2.createRouter({ mediaCodecs });// Produce in router1.
const transport1 = await router1.createWebRtcTransport({ ... });
const producer1 = await transport1.produce({ ... });// Pipe producer1 into router2.
await router1.pipeToRouter({ producerId: producer1.id, router: router2 });// 从router2消费producer1;
const transport2 = await router2.createWebRtcTransport({ ... });
const consumer2 = await transport2.consume({ producerId: producer1.id, ... });
  • createAudioLevelObserver(options) //创建音频观察者
  • canConsume(options = { producerId, rtpCapabilities }) //是否可以消费生产者的数据

router 相关事件

  • workerclose 侦听进程关闭

mediasoup 学习笔记 【二】Router 房间相关推荐

  1. Mongodb使用学习笔记(二)

    文章目录 Mongodb使用学习笔记(二)之查询篇 1. MongoDB命令学习 (1) MongoDB 查询文档 1.1 全部查询 1.2 单条件查询 1.3 多条件查询 1.3.1 AND拼接多条 ...

  2. ES6学习笔记二arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  3. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  4. [转载]dorado学习笔记(二)

    原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...

  5. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  6. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  7. Scapy学习笔记二

    Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...

  8. Ethernet/IP 学习笔记二

    Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...

  9. Java学习笔记二:数据类型

    Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...

  10. 吴恩达《机器学习》学习笔记二——单变量线性回归

    吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...

最新文章

  1. 【云计算的1024种玩法】回忆经典,用虚拟主机重建复古DZ和无心宠物
  2. arcgis超级工具密码_忘记电脑密码怎么办?只需要简单这样做
  3. Chrome之排序问题
  4. Gartner:全球IT未来十年热门技术TOP10
  5. USACO_1_4_Mother's Milk
  6. noclassdeffounderror java,从终端运行Java文件时出现java.lang.NoClassDefFoundError
  7. mysql删除一条记录
  8. Codeforces Round #112 (Div. 2)---A. Supercentral Point
  9. 网关 配置内网DNS 服务器
  10. 比特币 以太坊 真的是去中心化的吗?
  11. matlab仿真软件 R2017a版本下载
  12. 如何巧妙应对压力面试
  13. Java 神级项目 yyds
  14. 数字图像处理锐化的原理_数字图像锐化的工作原理以及为什么要使用它
  15. 第一章概述-------第一节--1.7 计算机网络体系结构
  16. struts2架构网站漏洞修复详情与利用漏洞修复方案
  17. Mac系统下Gauge初体验
  18. ICPC 2022西安回顾
  19. 超声波测距仪编程_Arduino轻松学Mixly编程第9课 超声波测距仪
  20. mysql 查询当前年份

热门文章

  1. dsp处理浮点数_定点DSP如何做浮点运算
  2. 中国首个开源基金会“开放原子开源基金会”亮相
  3. pptv图标出现在计算机磁盘,求大神解决!!界面图标全部变成了pptv,如果用其他打开方式打开同理,点哪个都弹出来PPTV说不支持格式...
  4. 集合框架,JDK8新特性
  5. 舒米,又夺冠了。。。。。
  6. 微软发起手机操作系统新战役
  7. 解决手机连接不上电脑开的热点问题
  8. 毕业设计之 --- 基于图像识别的跌倒检测算法
  9. USACO 2020 December Contest, BronzeProblem 2. Daisy Chains题解
  10. java打包成docker images