SRS源码梳理之rtmp协议解析

        笔者用的srs源码版本为:srs-server-4.0-r4。

        listen_rtmp 函数的调用堆栈如下:

SRS源码梳理之rtmp协议解析_第1张图片

         accept_client 函数的调用栈如下,注意该调用是通过协程调用,这里需要仔细观察协程调用方式

SRS源码梳理之rtmp协议解析_第2张图片

         在srs中所有应用处理都采用协程,可以根据上面accept_client函数及源码中很多地方,协程调用流程总结如下:

         srs源码中从main函数开始至rtmp服务启动、监听、及accept接受新连接都在协程中处理的,具体流程大致如下:

SRS源码梳理之rtmp协议解析_第3张图片

         通过解析rtmp协议,主要确定客户端是推流(publish)还是拉流(play),创建不同的处理协程回调函数,具体如下:

SRS源码梳理之rtmp协议解析_第4张图片

        由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。

你可能感兴趣的:(开源库,C++,rtmp,srs)