什么是信令服务器
Ⅰ [webrtc] 交互式连接建立(ICE)
课程地址:零声学院 WebRTC入门与提高 https://ke.qq.com/course/435382?tuin=137bb271
技术支持QQ群:782508536
更多音视频知识请点击: 专注音视频开发
交互式薯首唤连接建立是一种标准穿透协议,利用Stun和Turn服务器来帮助端点建立连接。市面上已有不少介绍ICE的资料,像《WebRTC权威指南(第三版)》中的“9.2 交互式连接芹肢建立”。但看了那些后,有人还是不能理解,这里试着用一个实例来描述整个过程。ICE协议只是制定规范,没规定怎么实现细节,在细节实现上这里参考Google的WebRTC。
上图就是《WebRTC权威指南(第三版)》中的图9.1。呼叫要交换两种信息,一是候选地址,二是媒体信息。候选地址用于建立网络连接,它存储着和网络连接相关的参数。媒体信息(SDP)用于描述要在对等连接上传输的数据,包括音频、视频和数据。用路和车来比喻的话,候选地址用于造路,媒体信息于用指数凯定要跑什么车。
在图中,双方是串行处理媒体、候选地址,但实际中是并发的。举个例子,主叫收到Answer后,它仍可能在收集候选地址,然后通过信令服务器发向被叫。
除了主叫必须创建Offer才开始收集候选地址、被叫必须创建Answer才开始收集候选地址外,ICE代理是相互独立地处理媒体和候选地址。 (这结论细节参考底下的“四:选定候选地址,并启动媒体”)。
和“9.2 交互式连接建立”一样, 这里也把ICE分为六个步骤。下图是例子使用的网络拓扑结构。
<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, Helvetica, SimSun, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">
</ignore_js_op>
一:收集候选地址
候选地址是或许可用于接收媒体以建立对等连接的<IP地址, 端口>对,它分四种类型。
| 类型 | 别名 | 如何传给对端 | 用法 |
| 主机候选项 | host | 信令服务器 | 从网卡中获取的本地传输地址,如果此地址位于NAT之后,则为内网地址 |
| 服务器反射候选项 | srflx | 信令服务器 | 从发送给Stun服务器的Binding检查中获取的传输地址。如果此地址位于NAT之后,则为最外层NAT的公网地址 |
| 对端反射候选项 | prflx | Stun Binding请求 | 从对端发送的Stun Binding请求获取的传输地址。这是一种在连接检查期间新发生的候选项 |
| 中继候选项 | relay | 信令服务器 | 媒体中继服务器的传输地址。通过使用TURN Allocate请求获取 |
具体到例子,以下是此阶段将至少能收集到的候选地址。为简单,不再写A的IP2、B的IP2的服务器反射地址。
| 别名 | 类型 | 值 |
| A Cand2 | srflx | 211.161.240.181(raddr: 192.168.1.105) |
| A Cand1 | host | 192.168.0.204 |
| B Cand3 | host | 192.168.0.181 |
二:交换候选地址
A通过信令服务器把A Cand2、A Cand1、B Cand3发向A。对端收到一个候选地址后会做什么?深入它之前让引入两种对象:P2PTransportChannel、Connection。
ICE代理用P2PTransportChannel管理通道(Component)上的网络传输。什么是通道?Webrtc有个概念叫轨道(Track),常见有视频轨、音频轨,而要发送一条轨道中数据,最多可能使用两个通道,分别是Rtp、Rtcp。肯定会有Rtp,Rtcp则可选。一个P2PTransportChannel对应一条通道,如果当前会话要同时处理音频、视频,每条轨道又都包括Rtp、Rtcp,那会话中就存在四个P2PTransportChannel对象。P2PTransportChannel用维护一张连接状态表来管理网络传输,表中一条记录对应一个Connection对象。这里让具体到A的视频Rtp对应的P2PTransportChannel,看它在收到B Cand1后,P2PTransportChannel会向连接状态表新增两条记录,即两个Connection。这时已到通道,地址须是ip:port对。
| 本地网卡地址(Port) | 对端地址 | 状态 |
| 192.168.1.105:60001 | 192.168.0.204:40001 | 未进行过Stun检查 |
| 172.16.40.6:60003 | 192.168.0.204:40001 | 未进行过Stun检查 |
此时A不知道该用哪个网卡IP才能把数据成功发向192.168.0.204,于是它只要在有可能的地址对就创建Connection。注意Connection只会基于网卡IP,即host,因为对发送源来说,host才可能是源,其它的只是中间转换出的地址,像srflx。当然,创建时会放弃明显不可能的<网卡地址, 对端地址>对,举个例子,网卡地址是ipv4,而对端地址是ipv6。
当收全B Cand2、B$Cand3,状态表中就有6条记录。
| 本地网卡地址 | 对端地址 | 状态 |
| 192.168.1.105:60001 | 192.168.0.204:40001 | 未进行过Stun检查 |
| 172.16.40.6:60003 | 192.168.0.204:40001 | 未进行过Stun检查 |
| 192.168.1.105:60001 | 11.92.14.8:50002 | 未进行过Stun检查 |
| 172.16.40.6:60003 | 11.92.14.8:50002 | 未进行过Stun检查 |
| 192.168.1.105:60001 | 192.168.0.181:40003 | 未进行过Stun检查 |
| 172.16.40.6:60003 | 192.168.0.181:40003 | 未进行过Stun检查 |
表中有一条、或多条、或没有,能够把A的视频Rtp数据发向B的视频Rtp通道,到底怎么个可能性就要执行接下的Stun检查。
三:STUN检查
在状态表新建一条记录,即一个Connection,很快就会在此Connection上进行Stun检查。Stun检查具体操作是在此Connection上发Stun Binding请求。 由于要能支持Stun应答,每个ICE代理必须内置Stun服务器功能。 Stun检查具体步骤见下图。
<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, Helvetica, SimSun, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">
</ignore_js_op>
为什么说Stun检查会发现prflx候选项?假如A和Stun服务器之间连接状态不好,在它收到B发来的srflx(11.92.14.8)之后还没得出自个的srflx(211.161.240.181)。虽然A没得到自个的srflx,但这不妨碍对B的srflx这个候选地址进行Stun检查,于是会向11.92.14.8发Stun请求。B收到这个请求,从请求解析出211.161.240.181。虽然这个地址在值上等于A的srflx,但不是从信令服务器得到,而是来自对端的Stun请求。此时B就会以这个prflx向状态表新建Connection。
A在之后终于向Stun服务器拿到了自个的srflx,并通过信令服务器发向B。B发现这个srflx值对应的Connection已存在,就不会再创建了。
到此可得出个结论:两种原因会导致新建Connection,一是从信令服务器收到候选地址,二是Stun检查发现prflx。不同于从信令服务器得到地址而创建的Connection,Stun检查时创建的Connection一开始就基本能确定连接是畅通的。
四:选定候选地址,并启动媒体
P2PTransportChannel会维护连接状态表,并排序表中记录(SortConnectionsAndUpdateState)。排序指的是计算每条记录的连接“成本”,把成本最低的排在第一条。如何计算成本?这涉及到很多因素,比如发出Stun请求到收到应答经过了的时间,用时越少的“成本”自然会低些。
当A有视频Rtp数据要发送时,它检查状态表的第一条记录,如果判断出它的状态是发送就绪,就会用此Connection进行发送。否则直接放弃这个发送任务。 媒体模块在处理数据的采集、编码任务时,不用考虑候选地址方面进展怎样了,只是要到发送时才关注下,而即使不能发送也不会影响自个进度;同样,候选地址处理模块也不会关注媒体处理模块的进度。这正是之前写的一个结论:“除了主叫必须创建Offer才开始收集候选地址、被叫必须创建Answer才开始收集候选地址外,ICE代理是相互独立地处理媒体和候选地址”。
维护表任务包括新建、删除记录,以及修改记录中的状态字段。删除记录、修改状态都涉及到“长连接”。
五:长连接
为确保NAT映射和过滤规则不在媒体会话期间超时,ICE会不断通过使用中的候选项对发送Stun连接检查。具体到P2PTransportChannel,表现出来的是对状态表中所有记录隔段时间就要发送个Stun Binding请求。如果检测到本来是畅通的Connection上Stun应答超时了,那它就会更改该Connection状态,执行表排序时就有可能会向下掉,严重时会从状态表删除该记录。
一记录被删除后,如果之后那候选地址的连接又恢复了,则会基于该候选地址重新创建Connection。
六:ICE重新启动
分析长连接时,我们已能得出个结论,如果是网络拥堵或通断导致的状态表变化,P2PTransportChannel内部就能处理。但是,如果基地址发生改变,像一网卡被禁用,这就超出P2PTransportChannel可处理范围了,需重启ICE。
Ⅱ WebRTC介绍
1、 WebRTC是什么?
2、 WebRTC能做什么?
3、 常用API
4、 基本原理
WebRTC全称是Web Real-Time communication,是一种实时音视频通讯技术,通过WebRTC可以使浏览器之间建立点对点的连接,并实时传输数据。
通过上述图片可以看到【浏览器M】和【浏览器L】可以在不依余信老赖于Web服务器的情况下点对点实时传输数据。上图中的Web服务器不是用于数据传输,而是用于协助【浏览器M】和【浏览器L】进行连接,进行协助连接的服务器也叫【信令服务器】。
WebRTC主要分为四部分,分别是信令、建立连接、安全加密、数据传输,下面分别介绍四个步骤。
信令是指通信两端基于交换的数据进行协商。通俗的解释就是在互联网中两个浏览器之间如果要进行点对点的数据传输,连接双方需要交换对方的一些基本信息,基本信息包括对方的地址,带宽,数据的编解码格式,是否支持音视频等等信息。
通信双方的基本信息完成交换后,浏览器双方开始坦洞建立连接。在网络中,浏览器双方可能在同一个内网,可能不在同一个内网,中间可能还隔着交换机、路由器,还会存在防火墙。在网络的环境复杂的情况下,通信的双方需要找到一条最佳路径传输数据建立连接。建立连接主要使用的协议就是ICE协议。【ICE协议】又需要依赖【STUN协议】和【TURN协议】。
在WebRTC中,为了保证媒体传输的安全性,引入了【DTLS】作为传输加密协议,DTLS原理和作用类似于SSL/TLS,【DTLS】主要适用于UDP通信过程的加密,SSL/TLS主要适用于TCP通信过程的加密。
在WebRTC中,音视频数据传输是使用RTP协议,然后通过 DTLS 协商出加密密钥之后,RTP 也需要升级为 SRTP,通过密钥加密后进行通信。协议栈如下图所示:
上面说了对数据加密是使用DTLS,传输数据则分为两种情况,一种是传输音视频数据,另一种是传输自定义应用数据。
1、音视频数据传输,主要使用RTP/SRTP、RTCP/SRTCP协议
前面主要对WebRTC做了一个简单介绍,跳过了很多细节,有些地方可能不够严谨,如果有兴趣的读者,可以对技术做进一步研究,比如:
1、信令如何进行协商?
2、传输层用了UDP,UDP本身是不竖升可靠的,那么,音视频数据、自定义用户数据的时序、质量是如何保证的?
3、RTP用来传递音视频数据,为什么还需要有RTCP?
4、SCTP如何从协议层面兼顾传输的效率和质量?如何实现自定义数据的高效传递?
5、ICE协议的完整流程。
6、其他。
Ⅲ WebRTC中的Signaling Server是不是起到了一个ICEServer的作用
我认为不是 两个peer要会话就需要把各自的sdp发送到对方,如果两者都在局域网(nat)之后,怎么发送?这时候就需要一个在公网上的能直接访问的中间者来传递消息,在这之前两者都是tcp连接在中间服务器上的。这个中间服务器除了转发sdp,还会传递candidate,它包含stun之后的信息,有了这个peer之间就能直接传media数据了。peer通过ice组件向stun服务器协商后获得了candidate,所以这个信令服务器并不是ICE server,用google 文档上的话说,这个信令服务器可以是普通的socketserver,也可以sip/xmpp/Websocket服务器
Ⅳ 十一、信令服务器原理
没有信令服务器,各个WebRTC之间是没办法通信的。
传递媒体数据有两个信息,必须经过信令服务器进行交换
通过SDP来表示,如编解码器是什么?是否支持音频视频?编码方式是什么?余岁等
这些信息是通过SDP协议描述出来,通过信令服务器中转的
两个WebRTC客户端会尽可能选择P2P进行连接,那么进行连接前是如何发现对方的?就是通过信令服务器。
首先将你所有网络相关信息传到信令服务器,服务器帮你交换到对端,对端拿到你的信息后,
若在同一局域网内,乎漏直接通过P2P传输;若不在,首先进行P2P穿越,看是否能打通,打通则传竖顷睁输,打不通则中转等。
还有一点也需要信令服务器进行传输,比如加入房间,离开房间,禁言等功能
在传输时,一般有两种协议 TCP和 UDP
底层协议使用 UDP主要用于流媒体传输(音频视频)还有文本,文字聊天等,但 UDP是不可靠传输,是可以丢包的,当然音频视频是可以丢包的,丢失一帧只会卡顿下,还可以继续工作。
但信令服务器不能丢失数据,所有的包必须保证到达,否则断开连接,所以信令服务器一般使用TCP可靠性传输。
websocket底层使用的就是 TCP协议, socket.io 使用的也是TCP
在websocket官方中,是有三个服务器的,ROOM服务器(提供用户进出房间服务)、信令服务器、流媒体(中转)服务器
选用socket.io 即不用单独写ROOM服务器,这里ROOM和信令是同一个服务器
socket.io是一个基于Nodejs的库,在现有的Node Server上增加个socket.io即可
在任何终端都可以引入socket.io客户端的库,通过客户端的库就可以连接到 Nodejs中 socket.io服务器上
这样就可以建立连接,然后就可以创建,加入房间,这样房间内的人就可以通信了
多个 socke.io可以串行通信。
Ⅳ 中国1号信令 与7号信令和PIR信令的特点有什么不同
生活是积累沉淀的过程!知识就是财富.分享中获取快乐.
中国1号信令与7号信令的区别
2010年07月15日 星期四 09:36
中国1号信令与7号信令的区别
第一、概念描述
1号信令:又称为多频互控信令或随路信令。随路信令是指信令和话音在同一条话路中传送的信令方式。在我国使用的1号信令系统称为中国1号信令系统,是国内PSTN网最早普遍使用的信令。
7号信令:又称为公共信道信令。即以时分方式在一条高速数据链路上传送一群话路信令的信令方式,通常用于局间。在我国使用的7号信令系统称为中国7号信令系统。SS7网是一个带外数据通信网,它叠加在运营者的交换网之上,是支撑网的重要组成部分。在固定电话网或ISDN网局间,完成本地、长途和国际的自动、半自动电话接续;在移动网内的交换局间提供本地、长途和国际电话呼叫业务,以及相关的移动业务,如短信等业务;为固定网和移动网提供智能网业务和其他增值业务;提供对运行管理和维护信息的传递和采集。7号信令网大致由以下几部分组成,信令点是SS7信令网中处理控制消息的节点,产生消息的信令点为该消息的源信令点,接收消息的信令点为该消息的目的信令点。有以下三类信令点: 1. Service Switching Point(SSP) 业务交换点是信令消息的产生或终结点,实质上就是本地交换系统(或交换中心CO),它发起呼叫或接收呼入。2. Signal Transfer Point(STP)完成路由器的功能,查看由SSP发来的消息,然后通过网络把每一个消息交换到合适的地方。STP把其它信令点和网络连接在一起组成更大的网络。3. Service Control Point(SCP) 是典型的访问数据库服务器,SCP是智能网业务的控制中心,负责业务逻辑的执行,提供呼叫处理功能,接收SSP送来的查询信息和查询数据库,验证后向SSP发出呼叫处理指令,接收SSP产生的话单并进行相应的处理。在7号信令网中,ISUP信令(ISDN USER PART)消息是用来建立管理释放中心局话音交换机之间的话音中继电路的,提供话音和非话业务所需的信息交换,用以支持基本的承载业务和枝如补充业务,例如:ISUP信令消息可以承载主叫ID, 主叫方的电话号码,用户名等。TCAP信令(Transaction Capabilities Application Part)消息 用以支持电话业务,如免费电话,本地号码可携带,卡业务,移动漫游以及认证业务。TCAP主要包括移动应用部分(MAP)和运营、维护和管理部分(OMAP)。MAP规定移动业务中漫游和频道越局转接等程序,OMAP仅提供MTP路由正式测试和SCCP路由正式测试程序。
第二、特点描述
一、7号信令(七号信令)简介
集团电话
7号信令(七号信令)系统是一种国际性的标准化的通用公共信令系统,其基本特点是:裤闭
1,最适合由数字程控交换机和数字传输设备所组成的综合数字网。
2,能满足现在和将来传送呼叫控制、遥控、维护管理信令及处理机之间事务处理信息的要求。
3,信令传送相当可靠。
NO.7号信令能满足多种通信业务的要求,当前应用的主要有:
1,局与局之间的电话网通信。
2,局与局之间的数据网通信。
3,局与局之间综合业务数字网。(例如:ISDN PRI)
4,可以传送移动通信网中的各种信息。
5,支持各种类型的智能业务。
6,局端到用户端之间的电话网以及数据网的通信。
二、NO.7信令概述
共路信令是随着数字程控交换机的大量应用而出现的一种新的信号方式。它将原来分散在各路传送的控制电话接续信令集中在一个话路内传送,各路信号之间采用标号进行区分。共路信令概括的说,它传送信令猛纯启的信令链路和通话话路是分开的。一般情况都在数字程控局之间应用,因为受编码资源的影响,而不做用户端推广。由于它采用的是直发式发码方式,所以传输速率较NO:1信令要快。
优点:信令传送速度快,使呼叫接续时间大大缩短;信令和话音分开传送,这对改变信令,增加信令带来了很大的灵活性。
缺点:受信令点编码资源限制,无法大面积推广。
物理接口:符合G.703建议
非平衡75欧姆BNC
帧 结 构:符合G.704建议的帧结构与G.706建议的复帧结构
信令标准:NO
Ⅵ webrtc 浏览器与浏览器需要信令服务器么
webrtc 浏览器与浏览器需要信令服务器。推荐选择ZEGO即构科技,该公司拥有4行代码,30分钟在APP、Web和小程序等应用内实现视频通话、语音通话,互动直播功能。【点击免费试用,0成本启动】
使用一个信令服务器,是为了能够在两个任意对等点之间建立连接。这是当今使用的Internet体系结构的简陵搏陵单现实。将任何内容从一个浏览器流到另一个浏银陵览器的“传统”方式始终涉及中间的中继服务器。这是信令服务器进入的地方。两个对等方在彼此建立连接之前都已连接到信令服务尺戚器。因此,他们使用信令服务器代表他们中继消息,直到他们协商了直接的通话方式。如果没有本地子网的第三方的帮助,则可以协商连接。
想要了解更多关于这方面的相关信息,推荐咨询ZEGO即构科技。ZEGO即构科技是一家全球云通讯服务商,专注自研音视频引擎,服务覆盖全球,链接 5 亿终端用户。ZEGO即构科技覆盖212个国家/地区,全球用户体验毫秒级互动,日均通话时长达30亿分钟,跻身云通讯行业头部,全方位行业解决方案,满足百余个业务场景需要,服务客户4000家,70%泛娱乐/在线教育客户的选择。
Ⅶ 信令服务器房间设置
在WebRTC简介中提到信令服务器用于向中端传输数据,信令服务器是实现两个webRTC中端通信的重要角色。今天脊尘就来实现一下信令服务器。
作为前端开发对于后端的东西不是很熟悉,只枝手能使用现成的一些服务器软件和nodejs来搭建信令服务器。
业务逻辑
当两个用户要进行通信时,他们首先要创建一个房间,成功加入房间之后,双方才能交换必要的信息。
当通信的双方结束通话后,用户需要发送离开房间的消息给信令服务器,此时信令服务器需要将房间内的所有人清除;如果房间里已经没有人了,还需要将空房间销毁掉。
这样的逻辑socket.io已经帮我们实现了,我们只需要使用就行,不需要自己重新开发。
因此,我们使用nodejs+express+socket.io实现信令服务樱搭禅器。
创建服务器
const http = require('http');//引入http库
const express = require('express'); //引入express库
//创建HTTP服务,并侦听8980端口
const app = express();
const http_server = http.createServer(app);
http_server.listen(8080, '0.0.0.0');
1
2
3
4
5
6
7
1
2
3
4
5
6
7
首先,通过express创建一个Web应用;之后调用HTTP库的createServer()方法创建HTTP对象,即http_server;最后调用http_server对象的listen()方法侦听8080端口。通过上面的步骤就实现了一个HTTP服务。
注册socket.io的回调函数
io.sockets.on('connection', (socket) => {
//收到message时,进行转发
socket.on('message', (message) => {
//给另一端转发消息
socket.to(room).emit('message', message);
});
//收到 join 消息
socket.on('join', (room) => {
var o = io.sockets.adapter.rooms[room];
//得到房
Ⅷ 1号信令和7号信令有什么区别
按照信令的信道来分类,信令可以分为:随路信令和公共信道信令。随路信令(CAS,ChannelAssociatedSignaling):
信令和话音在同一条话路中传送的信令方式。目前我国采用的随路信令称为中国1号信令系统。为30/32时隙2048K局间中继传输方式,Timeslot16被用来传递其话音通道的信令,记发器信令为MFC(多频互控,即用六个频率中的两个组合,成一组编码,共15种前向信令,用四个频率中的两个组合,成一组编码,共6种后向信令,前向是指主叫向被叫传送,后向是指被叫向主叫传送。),线路信令a,b,c,d为xx11。R2信令与中国1号信令的区芦槐别在于R2信令的记发器信令斗戚为DTMF(双音多频),线路信令a,b,c,d为xx01。
1号信令:又称为多频互控信令或随路信令。随路信令是指信令和话音在同一条话路中传送的信令方式。在我国使用的1号信令系统称为中国1号信令系统,是国内PSTN网最早普遍使用的信令。
7号信令网大致由以下几部空哗陵分组成,信令点是SS7信令网中处理控制消息的节点,产生消息的信令点为该消息的源信令点,接收消息的信令点为该消息的目的信令点。有以下三类信令点:
1.ServiceSwitchingPoint(SSP)业务交换点是信令消息的产生或终结点,实质上就是本地交换系统(或交换中心CO),它发起呼叫或接收呼入。
2.SignalTransferPoint(STP)完成路由器的功能,查看由SSP发来的消息,然后通过网络把每一个消息交换到合适的地方。STP把其它信令点和网络连接在一起组成更大的网络。
3.ServiceControlPoint(SCP)是典型的访问数据库服务器,SCP是智能网业务的控制中心,负责业务逻辑的执行,提供呼叫处理功能,接收SSP送来的查询信息和查询数据库,验证后向SSP发出呼叫处理指令,接收SSP产生的话单并进行相应的处理。
Ⅸ WebRTC 服务器要干些什么
WebRTC 的服务器大体分为信令服务器和媒体服务器
WebRTC 信令服务器是主要功能禅做轮是为 WebRTC 通讯搭建一个了解彼此能力的通道, 交换信息, 同步改动.
而媒体服务器就是用来交换媒体,包括对媒体贺信数据的加解密,编解码,带宽和速率控制等功能
不同的 RTP Toplogies 对服务器有不同的要求
WebRTC 或者说多媒体通信一般有如下的几种拓扑结构:
如果是两个人之间的端到端 (P2P) 的通信, 信令服务器的功能很简单
而由于是点对点的通信,媒体服务器也就不需要了。
如果是 SFU(Selective Forward Unit), 那么它的信令服务器除了上述的 SDP 媒体胡滑参数协商, ICE 连接地址交换,还有参加 RTP 会话的参加者信息的同步。
多个人之间的会议系统, 信令控制会麻烦很多,除了上述两个基本功能之外, 还要有
在 RFC4575 中有这样的定义
Multiple Control Unit 多点控制单元相比 SFU, 它有着对于媒体流的 Mix 和 translate 功能,可以很好地适配传统的通信设备,在实际应用中,一般我们会以 SFU 为主, MCU 为辅,共同形成一个服务器集群。
在 WebRTC 服务器上,我们一般会维护如下的领域对象
领域对象的具体内容从略,一般有如下的 Command 或 Event
应用层的事件大约可以分为 5 类
具体的有
在一个视频会议中,大家都在向会议室中发布自己的音视频流,也订阅他人的音视频媒体流,所以服务器,特别是 SFU 需要维护这样一个 pub-sub 发布者和订阅者之间的关系