CrtmpServr 接收Http流程

2022-05-24 12:45:13 字數 1871 閱讀 9878

最近在研究crtmpserver http部分,記錄一些基本的流程,以備查閱。

首先,開啟配置指令碼crtmpserver.lua ,確認指令碼中有以下內容,如果沒有需要加上。

,

acceptors =,

}--validatehandshake=true

, --default=true

, },

在瀏覽器位址列中輸入跟蹤crtmpserver堆疊,呼叫堆疊如下圖所示。

圖1 crtmpserver接收http呼叫堆疊

下面逐步分析流程:

1.tcpcarrier::onevent(select_event &event)

carrier層要麼是udp,要麼是tcp,http協議傳輸層採用的是http,所以是接收到tcp鏈結。

crtmpserver執行後通過register 將http,tcp協議註冊到一起。**如下:

}這段**的呼叫流程如下圖所示:

圖2 httpechoprotocol流程

tcp 從tcp鏈結快取中讀取資料**如下,讀取的資料放在pinputbuffer.

bool tcpcarrier::onevent(select_event &event) 

_rx += readamount;

return _pprotocol->signalinputdata(readamount);

}

2. 看下tcp procotol signalinputdata**  

bool tcpprotocol::signalinputdata(int32_t recvamount)
_inputbuffer 中的內容如下,httpechoprotocol/testhttp 即是在瀏覽器位址上輸入的http位址。

3. _pnearprotocol 實際上是basehttpprotocol. _pnearprotocol->signalinputdata實際呼叫是basehttpprotocol::signalinputdata。

signalinputdata 呼叫 handlefixedlengthcontent 方法,該方法會將http內容傳給具體echoprotocol,方法內容如下:

}_pnearprotocol 實際是echoprotocol

不用keytool,tomcat開啟https

要用到https,也就是tls或者ssl,我們需要有證書,要麼是法定證書機構 verisign,中國估計也有 給你簽發的可信證書,要麼自己給tomcat 配置https自己頒發乙個根證書。自己給自己頒發的證書,瀏覽器是不信任的,會彈出乙個提示框。ssl認證分為雙向認證和單向認證 客戶端認證伺服器 一...

不用keytool,tomcat開啟https

要用到https,也就是tls或者ssl,我們需要有證書,要麼是法定證書機構 verisign,中國估計也有 給你簽發的可信證書,要麼自己給tomcat 配置https自己頒發乙個根證書。自己給自己頒發的證書,瀏覽器是不信任的,會彈出乙個提示框。ssl認證分為雙向認證和單向認證 客戶端認證伺服器 一...

windows下為apache配置https

前面為 tomcat 配置好了證書,接下來就是為 apache 配置證書。這裡先宣告幾點,第一,很多教程都是先配置 apache 再來生成證書,其實不用,證書用前面生成好的就可以,只要在 apache 中新增幾行 就行了。第二,證書有很多不同的表現形式,在 windows 下看字尾就可以了,甚至很多...