分析rtmp的入口

2021-09-02 07:07:57 字數 1037 閱讀 3401

通過跟蹤,得知當乙個flash程式連線到red5的時候所要呼叫的方法之最開始如下:

org.red5.server.net.rtmp.rtmpminaiohandler.sessioncreated

↓// 通過mina開啟乙個埠來開始session

org.red5.server.net.rtmp.rtmpminaiohandler.sessionopened

↓org.red5.server.net.rtmp.rtmpminaiohandler.messagereceived

↓org.red5.server.net.rtmp.rtmpminaiohandler.messagesent

↓ // rtmpminaiohandler實現mina到rtmp的資料io

org.red5.server.net.rtmp.rtmphandler.messagesent

↓ // 處理具體的rtmp資料,比較核心的物件

org.red5.server.net.rtmp.rtmpminaiohandler.messagereceived

↓org.red5.server.net.rtmp.rtmphandler.messagereceived

↓ // 真正開始解析內容

org.red5.server.net.rtmp.rtmphandler.oninvoke

↓ // 方法寫的比較長,處理各種呼叫情況

org.red5.server.net.rtmp.rtmphandler.gethostname

↓org.red5.server.server.lookupglobal

搞了半天,沒有弄清楚第一步到第二步如何呼叫的,看來是mina內部的結構,需要細心研究mina才是。

另外,把log4j的rtmp除錯資訊輸出也可以跟蹤:

到conf目錄下找到log4j.properties檔案

將log4j.logger.org.red5.server.net.rtmp=info

改為log4j.logger.org.red5.server.net.rtmp=debug

RTMP協議分析 一 RTMP包頭

rtmp協議 封包 參考red5 rtmp協議封包 由乙個包頭和乙個包體組成,包頭可以是4種長度的任意一種 12,8,4,1 byte s 完整的rtmp包頭應該是12bytes,包含了時間戳,head type,amfsize,amftype,streamid資訊,8位元組的包頭只紀錄了時間戳,h...

RTMP協議分析 一 RTMP包頭

rtmp協議 封包 參考red5 rtmp協議封包 由乙個包頭和乙個包體組成,包頭可以是4種長度的任意一種 12,8,4,1 byte s 完整的rtmp包頭應該是12bytes,包含了時間戳,head type,amfsize,amftype,streamid資訊,8位元組的包頭只紀錄了時間戳,h...

RTMP協議分析

rtmp協議封包 由乙個包頭和乙個包體組成,包頭可以是4種長度的任意一種 12,8,4,1 byte s 完整的rtmp包頭應該是12bytes,包含了時間戳,amfsize,amftype,streamid資訊,8位元組的包頭只紀錄了時間戳,amfsize,amftype,其他位元組的包頭紀錄資訊...