一、consumer 类型介绍
mediasoup总共有四种消费者类型,SimpleConsumer、PipeConsumer、SvcConsumer、SimucastConsumer。
consumer的类型是基于producer的类型来创建的。
SimpleConsumer: 普通RTP数据的消费者,对应PlainTransport。
PipeConsumer:不同Worker之间Router之间的数据流转,则其为接收或者消费从另外一个Worker中的Router传过来的数据。
SvcConsumer:传输时一般分为3层(核心层、拓展层、边缘层)进行传输,则其处理消费多层数据。
SimulcastConsumer :Simulcast 多播模式,即当共享者使用的是多路流时,则使用其来接收。
二、创建过程
见Transport.ts 的consume函数
async consume(
{
producerId,
rtpCapabilities,
paused = false,
preferredLayers,
appData = {}
}: ConsumerOptions
): Promise<Consumer>
{
....
....
//创建Consumer
const reqData =
{
kind : producer.kind,
rtpParameters,
//创建consumer时,type类型来自producer的类型
//对应 Producer中的_data.type ,在Producer构造函数中创建
type : producer.type,
consumableRtpEncodings : producer.consumableRtpParameters.encodings,