4-3.peerconnection_client的构成

那今天呢?我们来看一下peerconnection客户端的构成。好,首先我们来看一下peerconnection,它都包含了哪些类?那这些类之间又是怎样一个关系?那从这张图中呢,我们可以看到对于peerconnectionclient来说,包括了三大块儿,第一大块儿呢是对窗口儿的控制,也就是说我们要显示哪个窗口儿?窗口中包括了哪些元素,那都是由绿色的这一块儿来完成的,

好第二块儿conductor,它的逻辑主要用于完成调用webrtc native API。创建offer,创建answer等等,这一系列操作呢,都是由conductor来完成的。好,第三块儿。是信令模块儿所有的用户的登录登出交换信息等等,这些操作呢,都是由橙色的这一块儿来完成的。那对于这三大块儿来说呢,其中conductor是三块儿中的核心。也就是说conductor除了它会调用webrtc native的底层API之外,对于端口的显示以及信令的发送都是由它来统一调度的。

所以这个模块儿是非常关键的,那我们在理解的时候呢,也要重点看一下儿conductor这个模块儿。那接着我们再来看一下它包含了哪些类,那么这些类之间又是存在怎样的关系?那第一个重要的类呢是mainwin它继承自mainwindow主要完成的就是窗口的创建。前面的课程中,我已经向你介绍过对于peerconnectionclient来说,它有三个重要的界面,

那第一个界面呢,就是登录界面。可以输入IP地址端口号点连接,就可以与服务端建立起连接了,对吧?
之后呢,它会跳入到用户列表界面,所有登录到服务器的用户都可以在这列表中显示出来。

那最后一个界面儿呢,是视频的显示界面,这是三个重要的界面,

那这三个重要的界面呢,都是由mainwin来控制的。最后的渲染呢,是由video renderer来进行渲染的。除此之外呢,mainwin还会调用mainwindcallback这个接口,那在这个接口类中的所有接口都是由。conductor来实现的,所以当mainwin调用这个接口的时候呢,实际调用的就是conductor。

那conductor呢,也可以调用mainwin。所以他们的调用关系是mainwin通过mainwindcallback这个接口来调用conductor,而conductor呢?可以直接调用mainwin好,对于conductor来说,刚才我们已经介绍了它主要是实现webrtcnativeAPI的调用,这里边所有的逻辑呢?都是在conductor中完成的,那我们就不做过多讲解了.

好,那咱们再来看最后这一块儿,那最后这一块儿里呢,包含了两个类,那第一个类呢是?Peer_connectionclientlient也就是信令客户端类。它主要的工作就是完成信令的连接发送.

那除此之外呢,它里边还定义了peerconnectionclientobserve接口类,那同样的conductor中也实现了。observe中定义的所有的接口,所以这样呢,对于conductor来说,它可以直接调用peerconnection__client发送信令。同时呢,peerconnection__client也可以调用中observe的接口来,最终调用里边的这个逻辑。

那这个呢,就是三者之间的一个关系,其中一mainwin来说呢,

它主要用于界面的展示与调度,其实connectionclient用于信令的发送与接收。conductor是最为核心的,它的工作包括了两部分,一部分是对于webrtc native接口的调用,那另外呢,就是对这两个模块的一个统一调度。那下面呢,我们从时序图的角度再来看看几者之间的关系,那一开始当程序执行的时候呢,首先调用winmain这个函数将程序执行起来。那执行的过程中呢,会做一些初始化的工作,比如说初始化服务端IP\服务端端口、SSL。

创建登录窗口,创建peerconnectionclientld模块,那这个模块呢,就是信令发送模块,创建conductor,在创建conductor的时候呢?会将信令发送模块儿client和窗口模块儿wnd当做参数,传入到conductor中,这样conductor就可以直接访问client和window这两个模块儿了,对吧?那创建之后,一个是pcc代表的是peerconnectionclientld,一个是conductor。那执行到这一步之后呢?

我们的登录界面就展示在屏幕上了,那这个时候用户可以直接点击button click。它就会调用到mainwin这个逻辑中来,那之后呢?mainwin会调用start login来进行登录。那最终呢,会调用到conductor这个模块的connect函数,在这个函数中呢,又会调用pcc,也就是peerconnectionclient的模块,然后进行网络的连接。到这个时候,客户端与服务端之间就建立好信令连接了。之后,

用户在连接列表中选择想要通讯的对象,最终调到mainwin的。connect to peer这个方法,这时候又来到了conductor,对吧?这个时候呢?conductor会创建peerconnection对象,并且创建offer。如果offer创建成功之后,会调用send message告诉mainwin,mainwin呢,再通过自己的信令处理消息。然后再回调回conductor,那最终通过信令模块向信令服务器发送offer类型的sdp。那信令服务器收到这个消息之后呢,就会转发给另一端,那另一端呢,又走一套逻辑。

这个呢,就是整个呼叫端的持续图。从这上呢,我们可以清楚的看到,文本pcc conductor以及用户之间是如何完成信令的连接,以及信令发送的全部过程。通过上面两幅图的讲解呢,我相信你现在已经对peerconnectionclient的demo程序的整体架构有了一个非常清晰的了解。对吧,既知道它里边包含了哪些类类与类之间是怎样关系,同时又知道了整个时序是如何进展的。从第一步我们创建窗口到用户点击登录。

再到与信令服务器的连接等等,这一系列步骤它是如何一步一步实现的

如有侵权,请联系我删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值