EasyDarwin HTTP后台管理分析

10 篇文章 0 订阅
6 篇文章 1 订阅

EasyDarwin配置有HTTP后台管理,在EasyDarwin的配置文件easydarwin.xml定义有后端管理的端口8080。

即通过HTTP访问8080端口可以进行后台管理,后台管理主要有三种:

  1. 获取HLS模块信息(通过http://ip:8080/api/easyhlsmodule)
  2. 获取HLS会话信息(通过http://ip:8080/api/gethlssessions)
  3. 获取RTSP推流会话信息(通过http://ip:8080/api/getrtsppushsessions)

获取的信息都以json的形式显示在页面。


首先也是TCP监听到事件,进行处理,建立对应的会话。

后台管理基于HTTP,调用的是HTTPListenerSocket::GetSessionTask(...)。

返回新建HTTPSession并加入线程执行,进入HTTPSession::Run()方法。

在HTTPSession:Run()状态机执行过程中,进行读取,设置,处理请求等操作。

在case kFilteringRequest:中调用SetupRequest()对请求报文进行解析。

在SetupRequest()中分析是请求何种内容,即前面的三种情况。

  • 获取HLS模块调用ExecNetMsgEasyHLSModuleReq(...)函数。
  • 获取HLS会话调用ExecNetMsgGetHlsSessionsReq(...)函数。
  • 获取RTSP推流会话调用ExecNetMsgGetRTSPPushSessionsReq(...)函数。

 在此主要分析下最常用的获取RTSP推流会话的流程。

在ExecNetMsgGetRTSPPushSessionsReq(...)函数中调用了Easy_GetRTSPPushSessions()函数。

Easy_GetRTSPPushSessions()调用的是回调类中同名函数Easy_GetRTSPPushSessions()。

在此函数中遍历获取所有转发流会话theSession,为每一个新建一个EasyDarwinRTSPSession session,并且使用theSession相关信息初始化session信息。

可以发现,session主要包含3条信息,会话的URL和会话名,以及会话输出数。

其中URL是通过转发流会话的推流会话获取的,获取方法就是GetValueAsString(...)传入的key值是qtssCliSesFullURL,为何可以用这个key值获取到URL的字符串,这是因为在推流的时候便以这个key值存入的URL。

会话的名即是转发流会话名,会话输出数也是转发流会话的输出数。

贴一个后台访问RTSP推流会话信息的图片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值