mediasoupClient 学习笔记 【四】 Consumer 数据消费者

前面已经介绍过Producer,今天来聊下Consumer, 正式进入之前要说下,
Producer和Consumer这里并不是指的用户,同一个用户即可以是创建消费者,又可以创建生产者
举个例子就那微信语音聊天,两个人都可以说话同时也可以听到对方说的话。
这里是需要转换下思路。

值得注意的另外一点,信令服务在整个官方demo中,只承担了数据的传输,跟transport也不要混淆,

整体流程、过程 (过程只列举重要的环节)
  1. (生产者方)客户端初始化
  2. (生产者方)创建transport; createSendTransport 创建完并侦听相关事件,其中 connect 和 produce 两个事件 需要通过websocket 发送相关数据
  3. 上一篇 讲的 produce()的时候会触发 transport 的 produce事件,然后通过信令服务发送相关数据
  4. (消费者方)同样上面步骤 createRecvTransport 事件侦听 connect
  5. (信令服务)收到这connect 和 produce 创建通道以及服务端的mediasoup一些操作,同时也会把生产的数据转发给消费方(这块后面的文章再讲)
  6. (消费者方)接收信令服务的数据,进行消费

完整过程,这里写的比较简略,想要技术细节就需要分析代码,

回归本篇正题

其实就是上面第六步的操作,客户端
信令服务器收到生产者数据后需要找到对应的消费者,进行转发数据

官网给出的代码,不难看出其实很简短明了,这里我指出下

mySignaling.on('newConsumer', async (data) =>
{
  const consumer = await transport.consume(
    {
      id            : data.id,
      producerId    : data.producerId,
      kind          : data.kind,
      rtpParameters : data.rtpParameters
    });

  // Render the remote video track into a HTML video element.
  const { track } = consumer;

  videoElem.srcObject = new MediaStream([ track ]);
});

  • transport 其实就是 消费者通道 createRecvTransport()
  • track 获取到转换程媒体数据消费

消费这块其实没有太多的难点,上一篇和这一篇都属于客户端的一些相关知识点,后面我有时间会陆续更新 服务端的相关处理流程。

码字不易,感谢支持

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值