首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

RTMPdump(libRTMP) 源代码分析 九: 处理各种消息(Message)

2013-10-24 
RTMPdump(libRTMP) 源代码分析 9: 处理各种消息(Message)已经连续写了一系列的博客了,其实大部分内容都是

RTMPdump(libRTMP) 源代码分析 9: 处理各种消息(Message)

已经连续写了一系列的博客了,其实大部分内容都是去年搞RTMP研究的时候积累的经验,回顾一下过去的知识,其实RTMPdump(libRTMP)主要的功能也都分析的差不多了,现在感觉还需要一些查漏补缺。主要就是它是如何处理各种消息(Message)的这方面还没有研究的特明白,在此需要详细研究一下。

再来看一下RTMPdump(libRTMP)的“灵魂”函数RTMP_ClientPacket(),主要完成了各种消息的处理。

static voidHandleClientBW(RTMP *r, const RTMPPacket *packet){  r->m_nClientBW = AMF_DecodeInt32(packet->m_body);  if (packet->m_nBodySize > 4)    r->m_nClientBW2 = packet->m_body[4];  else    r->m_nClientBW2 = -1;  RTMP_Log(RTMP_LOGDEBUG, "%s: client BW = %d %d", __FUNCTION__, r->m_nClientBW,      r->m_nClientBW2);}

消息类型ID是0x08的消息用于传输音频数据,在这里不处理。

消息类型ID是0x09的消息用于传输音频数据,在这里不处理。

消息类型ID是0x0F-11的消息用于传输AMF3编码的命令。

消息类型ID是0x12-14的消息用于传输AMF0编码的命令。

注:消息类型ID是0x14的消息很重要,用于传输AMF0编码的命令,已经做过分析。












热点排行