Srs之HttpApi内部调用流程
先从简单的http协议开始研究,探究srs的内部工作原理。
下面开始阅读代码:
第一步:创建tcp的监听:
第二步:创建http协议的监听:
第三步:SrsBufferListener里面开始监听
第四步 :启动协程库的,调用start之后,就开了个while循环,开始等待tcp连接了
第五步:在cycle函数里面等待tcp连接
第六步:处理tcp连接
第七步:转到了下面的处理函数,又开启了一个协程,这个应该是读取数据用的
第八步 :读取数据,由于是http协议,所以会到这个类里面来
第九步 :处理请求
第十步 :应答 出去
*****************************************看完流程的总结******************************
整个http通信的流程分为两大步:
第一步:创建监听----》创建一个循环等待监听上来
第二个:处理建立连接的消息---》创建一个循环读取数据
循环的创建都是使用了SrsSTCoroutine来实现
监听的循环这么实现的:
再看 消息的循环,这里有点难搞
SrsHttpApi 继承了SrsConnection类,实际可以看SrsConnection
这里循环,都用到了同一个类,然后处理还是在do_cycle里面处理