WebRTC PeerConnection 连接流程

PeerConnection 是 WebRTC 连接流程中无法绕过的一个类,甚至可以认为这个类是整个连接流程的 Controller。本文着重介绍双人通话(一对一)的连接流程,读者可以很轻易地将其推演至多人通话(一对多、多对多)的场景。

假定读者已有一定基础,对信令(signaling)服务器、ICE 服务器等概念都有所了解,那么没有什么比一张时序图更加简洁清晰的了:

WebRTC PeerConnection 连接流程
PeerConnection 连接流程图

这里针对时序图中的一些情况做具体说明:

1 上图不完全是 API 的调用流程,读者在编程时仍需参考 WebRTC 的文档或源码注释。

2 先进入房间的用户是发起方(Indicator),后进入房间的用户是参与者(Participant)。如果参与者进房时信令服务器已经有 offerSdp 甚至(发起方的)ICE candidate 信息了,则信令服务器可以将它们与 ICE server addr 一起返回给参与者。

3 add audio & video tracks 不是连接流程中的关键步骤,也可以在 ICE 流程之后再执行。

4 在 SetLocalDescription 执行成功后,协商 SDP 和 ICE candidate 的流程便会同时开始。

5 通话双方均与选定的 ICE 服务器连接成功后,即可开始相互推流。

6 在 WebRTC多人视频会议服务端架构 中,一般由 SFU 服务器同时充当 ICE 服务器的角色。

作者:mthli | 来源:WebRTC 学习指南

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论