先從簡單的http協議開始研究,探究srs的內部工作原理。
下面開始閱讀代碼:
第一步:創建tcp的監聽:
第二步:創建http協議的監聽:
第三步:SrsBufferListener裏面開始監聽
第四步 :啓動協程庫的,調用start之後,就開了個while循環,開始等待tcp連接了
第五步:在cycle函數裏面等待tcp連接
第六步:處理tcp連接
第七步:轉到了下面的處理函數,又開啓了一個協程,這個應該是讀取數據用的
第八步 :讀取數據,由於是http協議,所以會到這個類裏面來
第九步 :處理請求
第十步 :應答 出去
*****************************************看完流程的總結******************************
整個http通信的流程分爲兩大步:
第一步:創建監聽----》創建一個循環等待監聽上來
第二個:處理建立連接的消息---》創建一個循環讀取數據
循環的創建都是使用了SrsSTCoroutine來實現
監聽的循環這麼實現的:
再看 消息的循環,這裏有點難搞
SrsHttpApi 繼承了SrsConnection類,實際可以看SrsConnection
這裏循環,都用到了同一個類,然後處理還是在do_cycle裏面處理