WebRTC 源码分析之一:几个核心设计概念

来源:互联网 发布:c语言编程格式 编辑:程序博客网 时间:2024/06/05 12:41

WebRTC 的框架图网上资料很多,这里就不做过多讲解。只上图一张。


下面要介绍的是 WebRTC 中最核心的几个概念。

1、OnMessage 消息机制

     对象内部发送消息。这是一个普遍性,通用性的设计,例如 MFC、Android 消息机制都是如此。
     在对象内把消息 Post 到主线程,并且把当前对象的句柄放在消息体内,线程队列根据消息里对象句柄来回调对应的 OnMessage 函数
2、sigslot 消息机制
     对象之间发送消息。
     发送者(发布主题者)生命一个信号量,绑定到接受者(观察者)的函数,当发送者调用一次信号量时,直接会回调观察者的函数。
3、消息进阶传递机制(OnMessage 和 sigsolt 结合)
     最底层 sigslot 传递消息到中层后,中层使用 Post 消息传递到本层的OnMessage,在 OnMessage 里使用 sigsolt 再往上层传递消息。
     即同层之间用 OnMessage 消息传递,下层向上层传递则使用 sigsolt。
4、线程封装原理
     线程create传送的参数是一个 ThreadInit 的类指针,这个指针包含了一个正常的本身的线程类指针Thread,同时也包含了一个 Runnable 指针。
   Start(Runnable * runnable),runnable 为空时,启用的是 Thread 的 Run,不为空时,启用的是 Runnable 的 Run
     class RunTest :  public Runnable      {          public:               virtual void Run(Thread* t){};          private:               Thread thread;     }     RunTest::RunTest ()     {          thread.strart(this);     }

 


http://www.seaskyblog.com/?p=98


0 0
原创粉丝点击