crtmpserver基础类介绍

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]
//离服务器最近的是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; 协议基础类的支持?
RTMPProtocolSerializer _rtmpProtocolSerializer; RTMP协议解码类




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种协议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值