1. 程式人生 > >nginx http2 原始碼分析

nginx http2 原始碼分析

static ngx_chain_t *
ngx_http_v2_send_chain(ngx_connection_t *fc, ngx_chain_t *in, off_t limit)

流程走讀:

1 找到當前chain中第一個非空buf;

2 沒有一個非空buf,直接返回(?);

3 如果當前stream傳送視窗不大於0或者當前http2連線傳送視窗等於0,直接返回;

4 (?)

5 設定這次傳送直接資料的閾值;

6 設定這次幀大小;

7 如果幀大小大於資料閾值,設定幀大小為資料閾值;

8 遍歷chain,構造出一個個輸出chain,每個chain中buf大小為一個幀大小,再將每個chain構建一個http2幀;

9 呼叫傳送介面,傳送構造的每個http2幀;