以前我们做了分析过程,这一次,我们都参与了类做梳子,两个可以一起关注一下一起合并,整个方案的实施是有帮助。
BaseClientApplication APP基类,一切APP都基于这个类
StreamsManager _streamsManager;
能够对该APP所属的流链接进行管理
map<uint64_t, BaseAppProtocolHandler *> _protocolsHandlers;
这个APP所支持的协议
BaseProtocol
协议基类,一切协议都基于这个类,比如BaseHTTPProtocol和BaseRTMPProtocol
BaseClientApplication *_pApplication;
该协议所属的APP
BaseProtocol *_pFarProtocol;
远端协议
BaseProtocol *_pNearProtocol;
//表示到服务器的远近[outside world --->ssl--->http--->rtmp--->server]
//离server近期的是rtmp协议,最远的为ssl
BaseRTMPProtocol RTMP协议运算基类
IOBuffer _outputBuffer;
协议的交互buffer
BaseRTMPAppProtocolHandler *_pProtocolHandler;
所属的协议事务类
BaseStream *_streams[MAX_STREAMS_COUNT]; 这边是一个连接对象同意请求256次流?
LinkedListNode<BaseOutNetRTMPStream *> *_pSignaledRTMPOutNetStream;
输出流集合
BaseAppProtocolHandler
APP处理协议事务基类,--->BaseRTMPAppProtocolHandler--->RTMPAppProtocolHandler
BaseClientApplication *_pApplication;
能够找到所属的APP
对于主要的协议交互,BaseRTMPAppProtocolHandler已经足够使用。继承于它的RTMPAppProtocolHandler仅仅只是添加一些特定的扩展应用。同理,BaseRTSPAppProtocolHandler,对于比較简单的协议比方ssl和http。大部分功能都在BaseAppProtocolHandler,仅仅须要重载实现部分接口就能够了。而对于调用者来说。构造一个RTMPAppProtocolHandler和HTTPAppProtocolHandler就可以支持两种协议的事务处理
BaseRTMPAppProtocolHandler 继承于BaseAppProtocolHandler
map<uint32_t, BaseRTMPProtocol *> _connections;
协议基础类的支持?
StreamsManager
流链接管理
BaseClientApplication *_pApplication;
所属APP
BaseStream
流处理基类
BaseProtocol *_pProtocol;
所属协议
StreamsManager *_pStreamsManager;
反向查询流管理
BaseInStream --->BaseStream
流输入类
map<uint32_t, BaseOutStream *> _linkedStreams;
相应的流输出集合
BaseOutStream --->BaseStream
流输出类
BaseInStream *_pInStream;
流的输入对象
InNetRTMPStream --->BaseInNetStream --->BaseInStream
RTMP 流公布时创建的,用于管理流输入,在这个类中做流分发处理
IOBuffer _videoCodecInit;
相应的视频流缓冲
IOBuffer _audioCodecInit;
相应的音频流缓冲
IOHandler
处理IO交互,网络相关,TCPAcceptor,TCPCarrier,TCPConnector...
BaseProtocol *_pProtocol;
所属的交互协议。RTMP/HTTP/RTSP...
IOHandlerType _type;
标识本IO的处理类型,參见IOHandlerType,ACCEPT/CONNECT/TCP/UDP
TCPAcceptor
TCP监听器
BaseClientApplication *_pApplication;
IOHandlerManager
IO交互管理,程序入口为这个类
static map<uint32_t, IOHandler *> _activeIOHandlers;
有效IO
static map<uint32_t, IOHandler *> _deadIOHandlers;
无效IO
ProtocolManager
Protocol协议交互管理
ClientApplicationManager
APP管理
ProtocolFactoryManager
协议厂,这个计划包括支持协议,外观似无关的配置文件。有着25协议
版权声明:本文博主原创文章。博客,未经同意不得转载。