添加 http-flv/rtmp/rtsp通用鉴权接口

This commit is contained in:
xiongziliang
2018-02-05 15:56:44 +08:00
parent 6da3a577a6
commit ec902f5164
9 changed files with 422 additions and 276 deletions

View File

@@ -150,8 +150,8 @@ void MediaInfo::parse(const string &url){
auto pos = steamid.find("?");
if(pos != string::npos){
m_streamid = steamid.substr(0,pos);
auto params = steamid.substr(pos + 1);
m_params = Parser::parseArgs(params);
m_param_strs = steamid.substr(pos + 1);
m_params = Parser::parseArgs(m_param_strs);
if(m_params.find(VHOST_KEY) != m_params.end()){
m_vhost = m_params[VHOST_KEY];
}

View File

@@ -83,6 +83,8 @@ public:
string m_app;
string m_streamid;
StrCaseMap m_params;
string m_param_strs;
};

View File

@@ -47,13 +47,13 @@ void loadIniConfig(){
}
////////////广播名称///////////
namespace Broadcast {
const char kBroadcastMediaPlayed[] = "kBroadcastMediaPlayed";
const char kBroadcastMediaChanged[] = "kBroadcastMediaChanged";
const char kBroadcastRecordMP4[] = "kBroadcastRecordMP4";
const char kBroadcastHttpRequest[] = "kBroadcastHttpRequest";
const char kBroadcastOnGetRtspRealm[] = "kBroadcastOnGetRtspRealm";
const char kBroadcastOnRtspAuth[] = "kBroadcastOnRtspAuth";
const char kBroadcastMediaPlayed[] = "kBroadcastMediaPlayed";
const char kBroadcastRtmpPublish[] = "kBroadcastRtmpPublish";
} //namespace Broadcast
//代理失败最大重试次数

View File

@@ -51,6 +51,7 @@ void loadIniConfig();
#define SERVER_NAME "ZLMediaKit"
#define VHOST_KEY "vhost"
#define HTTP_SCHEMA "http"
#define RTSP_SCHEMA "rtsp"
#define RTMP_SCHEMA "rtmp"
#define DEFAULT_VHOST "__defaultVhost__"
@@ -59,15 +60,16 @@ void loadIniConfig();
////////////广播名称///////////
namespace Broadcast {
extern const char kBroadcastMediaPlayed[];
#define BroadcastMediaPlayedArgs const char *schema,const char *vhost,const char *app,const char *stream
//注册或反注册MediaSource事件广播
extern const char kBroadcastMediaChanged[];
#define BroadcastMediaChangedArgs bool bRegist, const char *schema,const char *vhost,const char *app,const char *stream
//录制mp4文件成功后广播
extern const char kBroadcastRecordMP4[];
#define BroadcastRecordMP4Args const Mp4Info &info
//收到http api请求广播
extern const char kBroadcastHttpRequest[];
#define BroadcastHttpRequestArgs const Parser &parser,HttpSession::HttpResponseInvoker &invoker,bool &consumed
@@ -80,6 +82,18 @@ extern const char kBroadcastOnGetRtspRealm[];
extern const char kBroadcastOnRtspAuth[];
#define BroadcastOnRtspAuthArgs const char *user_name,bool must_no_encrypt,const RtspSession::onAuth &invoker
//鉴权结果回调对象
typedef std::function<void(bool success)> AuthInvoker;
//收到rtmp推流事件广播通过该事件控制推流鉴权
extern const char kBroadcastRtmpPublish[];
#define BroadcastRtmpPublishArgs MediaInfo &args,Broadcast::AuthInvoker &invoker
//播放rtsp或rtmp事件广播通过该事件控制播放鉴权
extern const char kBroadcastMediaPlayed[];
#define BroadcastMediaPlayedArgs MediaInfo &args,Broadcast::AuthInvoker &invoker
} //namespace Broadcast
//代理失败最大重试次数