Day30 WebRTC 一对多连线

上一篇我们使用 addTransceiver 单向接收串流 ,但是却不能两个人一起接收,今天我们要来改善这一点,主要问题是因为我们在启动时就建立了单一的 RTCPeerConnection。

解决思路

  1. 在收到 offer 时才建立 PeerConnection
  2. 建立一个字典来管理所有 PeerConnection ,key 为 socket.io 的id
  3. 为了避免字典不断增长,让 server 收到断线消息时发送 bye 来删除字典内的 PeerConnection

这样我们就可以建立并管理多个连线,程序码请参考 Github multiple-user 分支

❯ git clone https://github.com/tc3oliver/one-way-broadcasting.git
❯ cd one-way-broadcasting
❯ git checkout multiple-user
❯ npm install
❯ node server.js

结语

这篇也是铁人赛的最後一篇,以前都没有写文章的习惯,也没有提前做好参赛准备,导致这一次参赛过程非常艰辛,几乎每天都写到半夜,文章的质量也不好,要感谢我的夥伴,我才能坚持写完这三十天,总不能揪人家参赛,然後自己弃赛吧XD

希望明年可以再参赛,期待明年的累积,希望能写出更有内容的东西。

最後附上夥伴的连结,对 Flutter 跨平台移动端开发有兴趣可以参观一下

Flutter with GetX, loading*175%历程


<<:  [Python 爬虫这样学,一定是大拇指拉!] DAY29 - 实战演练:自制进度条 Progress Bar

>>:  认识强大的Python套件:Pandas(下)

Day 13 Class与v-bind

v-bind v-bind常与class和style的绑定,可以用於绑定一个或是多个属性(class...

DAY06随机森林演算法(续3)

昨天,我们把分类函数算法算完,那今天,我打算建立决策树: 有了第一个最佳分类点和数值後,接下来就要找...

[FGL] 程序开发(1) - 基本指令与流程控制

为了协助新进同学,仍应该介绍基本程序的写法 编写小程序验证的做法请参考第一章的套件介绍,hello...

5.移转 Aras PLM大小事-Agile 汇出 Document

Agile 汇出 Document 本节汇出文件Document资料和料号雷同,同样继承Item物件...

JS 16 - jQuery 太重了,何不选择需要的功能就好?

大家好! 相信各位都有看到标题了,今天开始就要实作函式库了。 我们进入今天的主题吧! jQuery ...