通過跟蹤,得知當乙個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,其他位元組的包頭紀錄資訊...