日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx rtmp代码架构1 hook点总结

發布時間:2024/2/28 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx rtmp代码架构1 hook点总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 對消息的處理?
ngx_rtmp_receive_message里面,對消息的頭部h的type做判斷之后, 會調用cmcf->events[h->type]里面的handler,而這些handler是模塊注冊的?
ngx_rtmp.c里面,解析配置時,可能注冊
ngx_rtmp_protocol_message_handler
ngx_rtmp_amf_message_handler
ngx_rtmp_user_message_handler
ngx_rtmp_aggregate_message_handler

2. 對amf命令的處理?
cmcf->amf_hash是存放amf命令名稱與處理函數對應關系的地方。每個模塊會在postconfiguration的時候,將要處理的命令與處理函數的對應關系放到cmcf->amf這個array里面?
cmcf->amf會在配置解析完成后,統一放到cmcf->amf_hash中。?
cmcf->amf_hash在ngx_rtmp_receive.c的ngx_rtmp_amf_message_handler函數中拿出來調 用。而ngx_rtmp_amf_message_handler也是1中注冊的一種消息處理函數,專門用于處理amf類型的消息?
ngx_rtmp_cmd_module中注冊了以下命令的處理方法:?
connect
createStream
closeStream
deleteStream
publish
play
seek
pause
pauseraw
ngx_rtmp_codec_module中注冊了以下命令的處理方法:?
@setDataFrame
onMetaData
ngx_rtmp_relay_module中注冊了以下命令的處理方法:?
_result
_error
onStatus

3. 命令的chain_handler?
一個模塊xxx,在postconfiguration的時候,對于一個命令yyy,可能會定義一個函數ngx_rtmp_xxx_yyy來處理這個命 令,將全局的ngx_rtmp_yyy指向ngx_rtmp_xxx_yyy,并定義一個next_yyy,指向原來的ngx_rtmp_yyy?
例如:?
next_play = ngx_rtmp_play;?
ngx_rtmp_play = ngx_rtmp_live_play;?

chain handler包括這些?
ngx_rtmp_connect_pt ? ? ? ? ngx_rtmp_connect;?
ngx_rtmp_disconnect_pt ? ? ?ngx_rtmp_disconnect;?
ngx_rtmp_create_stream_pt ? ngx_rtmp_create_stream;?
ngx_rtmp_close_stream_pt ? ?ngx_rtmp_close_stream;?
ngx_rtmp_delete_stream_pt ? ngx_rtmp_delete_stream;?
ngx_rtmp_publish_pt ? ? ? ? ngx_rtmp_publish;?
ngx_rtmp_play_pt ? ? ? ? ? ?ngx_rtmp_play;?
ngx_rtmp_seek_pt ? ? ? ? ? ?ngx_rtmp_seek;?
ngx_rtmp_pause_pt ? ? ? ? ? ngx_rtmp_pause;?
ngx_rtmp_stream_begin_pt ? ?ngx_rtmp_stream_begin;?
ngx_rtmp_stream_eof_pt ? ? ?ngx_rtmp_stream_eof;?
ngx_rtmp_stream_dry_pt ? ? ?ngx_rtmp_stream_dry;?
ngx_rtmp_recorded_pt ? ? ? ?ngx_rtmp_recorded;?
ngx_rtmp_set_buflen_pt ? ? ?ngx_rtmp_set_buflen;

總結

以上是生活随笔為你收集整理的nginx rtmp代码架构1 hook点总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。