前言
我们通常用的 webrtc 技术其实是一对一的 call,也就是 peer to peer。
ClientA 和 ClientB 如果能够顺利建立 P2P 的连接,则可直接通过 P2P 互相交换数据。如果由于某些网络环境原因,无法成功打通 P2P 连接的话,则可以通过一台 TURN Server 来中转数据给对方。
但是有时候我们会有一对多的情况,比如视频直播之类的(视频直播还有另一种技术: 推流 rtmp - cdn
), 甚至是多对多的情况,比如多方会议。 这时候是没法满足的。所以我们需要对 webrtc 技术延伸出 一对多,甚至 多对多的 架构形式。结合网上的资料 (以下的资料和总结大量参考了文章底部列出的参考资料)。 要实现多方的 webrtc,有以下三种选择:
- Mesh
- MCU
- SFU