0%

ZLMedia框架

序言

​ ZLMeidaKit使用的框架是ZLToolKit,大量使用了异步+lamda函数回调和其他C++11特性,对于不适应C++11特性的C++程序员(很多C++都C转过来的,以及现存的代码多以C++98风格为主),需要一个适应过程。代码整体而言是不好看懂的,因为回调的和模板存在,无法通过编辑器直接进行跳转对应的函数和类的具体实现,也无法直接通过编辑器的搜索,直接定位到被调用的地方。不过好像异步的代码,就无法避免这个问题,并且障碍主要存在纵向阅读时,如果已经理清框架,不需要在业务与框架来回切换时,这个问题就不存在。

​ 如何梳理?先看框架,框架是复用最多,而且阅读困难点主要在纵向阅读。框架掌握了之后,上层的各个模块就相对轻松了,甚至可以用到哪个再看哪个。

​ 如何梳理框架?网络异步最底层的肯定使用了epoll,poll,select,所以梳理Poller,再通过Poller看是怎么勾连Thread,再向上看Network。

​ 调试是快的阅读手段,堆栈自身就已经记录的代码路径。C++调试时需要注意,函数打断点是要带命名空间,建议直接用文件名打端点。

MediaSource

  • 基类不包含流媒体功能,
  • 虚拟主机(vhost):通过域名映射,让不用域名映射到同一主机上,该域名即为虚拟主机名