mediasoup学习笔记 Server端【一】

前面已介绍过我学习client端笔记,最近也有些时间,回过头再梳理下Server端学习笔记

这里就按照官方的demo的代码来一步一步梳理学习。
https://github.com/versatica/mediasoup-demo/tree/v3/server

乍一看代码结构还挺多的
在这里插入图片描述
其实主要关注以下几个文件,就可以实现mediasoup的服务端的功能;

  • config[.example].js
  • server.js
  • lib/Room.js

下面一个一个来说明;

config.js

这里主要配置的 证书 端口 域名 ip地址等等,如果你对音视频某些参数也可以在这里配置,这里给一张图仅供参考
在这里插入图片描述

  • routerOptions 创建路由的相关参数
  • webRtcTransportOptions 创建rtc通道的相关参数
  • plainTransportOptions 如果你不需要创建该通道这里也可以不用配置

server.js

这部分的代码和mediasoup的相关功能,可以简单理解为统一控制房间创建、删除;getOrCreateRoom

这里我只关注了

  • runMediasoupWorkers medisoup的服务
  • runHttpsServer http服务
  • runProtooWebSocketServer websocket服务

至于 createExpressApp 可以当成纯粹的demo业务功能;

Room.js

server部分是控制房间,这里就是控制人、通道、数据
关注学习点

*_handleProtooRequest 处理通过信令的数据,其他方法都是围绕着

  • handleProtooConnection
    如果能理解以下代码的作用功能,剩下的就是api的问题了。
peer.data.transports = new Map();
peer.data.producers = new Map();
peer.data.consumers = new Map();
peer.data.dataProducers = new Map();
peer.data.dataConsumers = new Map();

我这里简单提下,比如说第一个 peer.data.transports ,可以简单理解为用了储存这个用户共创建了多少的transports 剩下的,后面的都理解起来比较简单了。
ok就到这了,重要的几个文件大概聊了下,后面再详细介绍。

猜你喜欢

转载自blog.csdn.net/uk_51/article/details/114785025