WebRTC中peerconnection示例工程结构分析

WebRTC Native代码相当的大(大约200Mb),开始的时候对这些代码真的是一头雾水,最后决定先从example中的peerconnection先看起。

peerconnection例子分为client端和server端,多个client加入对话,server负责信令的处理,这里主要讨论与WebRTC较为相关的client Demo。

代码结构:
WebRTC中peerconnection示例工程结构分析_第1张图片

这个例子用Gtk图形库开发,其中核心的类是conductor类
我制作的类图如下(根据2018年6月11日的WebRTC的源码制作)请放大观看:

WebRTC中peerconnection示例工程结构分析_第2张图片

Conductor类以public方式继承了以下的类:
webrtc::PeerConnectionObserver,
webrtc::CreateSessionDescriptionObserver,
PeerConnectionClientObserver,

其中webrtc::PeerConnectionObserver与PeerConnection一起成为一个观察者模式,当PeerConnection状态改变,就回调PeerConnectionObserver(Conductor)。

Conductor类使用webrtc::CreatePeerConnectionFactory方法创建PeerConnectionFactoryInterface的对象实现。
PeerConnectionFactory负责创建PeerConnection、VideoTrack、AudioTrack等重要对象,PeerConnection API有着众多的WebRTC核心功能(见上图的函数名称)。

你可能感兴趣的:(WebRTC)