首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

从crtmpserver受看具体处理rtmp协议的流程1

2012-12-26 
从crtmpserver中看具体处理rtmp协议的流程1服务器监听1935接口:1.client-----发送1537个bytes数据----ser

从crtmpserver中看具体处理rtmp协议的流程1

服务器监听1935接口:

1.client-----发送1537个bytes数据---->server

握手第一步

tcpcarrier.cpp中的OnEvent接受到,转到tcpprotocol.cpp中的SignalInputData,在return BaseRTMPProtocol::SignalInputData(IOBuffer &buffer),最终数据在这里处理

这1537bytes数据主要是握手数据,所以在InboundRTMPProtocol中的PerformHandshake(buffer)函数处理,

首先获取消息头handshakeType(为0x03,表示未使用ssl加密的),进入PerformHandshake(buffer, false)在进行下一步的处理

 

a.首先验证版本和方案

 

bool InboundRTMPProtocol::ValidateClient(IOBuffer &inputBuffer) {if (_currentFPVersion == 0) {WARN("This version of player doesn't support validation");return true;}这里就是传说中的单独处理最末尾32bytes的if (ValidateClientScheme(inputBuffer, 0)) {_validationScheme = 0;return true;}if (ValidateClientScheme(inputBuffer, 1)) {_validationScheme = 1;return true;}FATAL("Unable to validate client");return false;}



 

a.填充随机数1537bytes,一共凑足3072bytes+1bytes(0x03)头

 

b.发送给客户端

热点排行