mthli / webrtc-tutorial

Learning WebRTC the Hard Way 👀
https://webrtc.mthli.com
MIT License
179 stars 45 forks source link

connection/peer-connection/ - PeerConnection 连接流程 - WebRTC 学习指南 #7

Open utterances-bot opened 2 years ago

utterances-bot commented 2 years ago

PeerConnection 连接流程 - WebRTC 学习指南

Learning WebRTC the Hard Way 👀

https://webrtc.mthli.com/connection/peer-connection/

timpcfan commented 2 years ago

弱弱问一下,ICE Server指的是STUN/TURN服务器吗?

mGaosi commented 2 years ago

ICE的核心过程就是通过STUN/TURN获取port信息,然后进行双方的连通性探测并选择合适的可达链路。 ICE Server你可以理解为就是STUN/TURN服务器。

mthli commented 2 years ago

弱弱问一下,ICE Server指的是STUN/TURN服务器吗?

@timpcfan 是的。

yexianghu commented 1 year ago

请问你的流程图是用什么软件画的,怎么这么好看?

rshinich commented 1 year ago

请问你的流程图是用什么软件画的,怎么这么好看?

同问,真的好看。

mthli commented 1 year ago

请问你的流程图是用什么软件画的,怎么这么好看?

同问,真的好看。

@yexianghu @rshinich https://whimsical.com

rshinich commented 1 year ago

请问你的流程图是用什么软件画的,怎么这么好看?

同问,真的好看。

@yexianghu @rshinich https://whimsical.com

感谢大佬

YonminMa commented 1 year ago

请问为什么没有发起方向ice server获取ICE candidate这一步呢?是在generate ICE candidate这一步中简化了吗

zurmokeeper commented 1 year ago

通话双方均与选定的 ICE 服务器连接成功后,即可开始相互推流。这个相互推流是还需要搭一个流服务器吗?比如SOS之类的?

mthli commented 1 year ago

通话双方均与选定的 ICE 服务器连接成功后,即可开始相互推流。这个相互推流是还需要搭一个流服务器吗?比如SOS之类的?

@zurmokeeper 取决于你的架构:

  1. WebRTC 本身是 P2P 的,不需要流服务器也可以相互推流,比如 Mesh 架构
  2. 如果你使用的是 SFU 架构或者 MCU 架构,通常流服务器也实现了 ICE 功能,物理上是同一台服务器(只是概念上我们将其拆分为两个概念)
  3. 当然也不是说 Mesh 就不需要流服务器了,有时候 P2P 不成功的话,还是需要中转服务器的
mthli commented 1 year ago

请问为什么没有发起方向ice server获取ICE candidate这一步呢?是在generate ICE candidate这一步中简化了吗

@YonminMa 是的,generate 的过程在图中被简化了。

完整的 generate ICE candidate 代码调用栈可以参见 这个链接

qykhhhhhhh commented 1 year ago

感谢大佬,最近参加了项目的视频模块,刚好也是用的mediasoup,看了大佬的博客后清晰多了