mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
For #464, support config for origin cluster.
This commit is contained in:
parent
db6b8cf914
commit
d0fbf44d18
6 changed files with 140 additions and 40 deletions
|
@ -329,20 +329,21 @@ vhost removed.srs.com {
|
||||||
|
|
||||||
# vhost for stream cluster for RTMP/FLV
|
# vhost for stream cluster for RTMP/FLV
|
||||||
vhost cluster.srs.com {
|
vhost cluster.srs.com {
|
||||||
# stream RTMP/FLV cluster config.
|
# The config for cluster.
|
||||||
cluster {
|
cluster {
|
||||||
# the mode of vhost, local or remote.
|
# The cluster mode, local or remote.
|
||||||
# local: vhost is origin vhost, which provides stream source.
|
# local: It's an origin server, serve streams itself.
|
||||||
# remote: vhost is edge vhost, which pull/push to origin.
|
# remote: It's an edge server, fetch or push stream to origin server.
|
||||||
# default: local
|
# default: local
|
||||||
mode remote;
|
mode remote;
|
||||||
# for edge(remote mode), user must specifies the origin server
|
|
||||||
|
# For edge(mode remote), user must specifies the origin server
|
||||||
# format as: <server_name|ip>[:port]
|
# format as: <server_name|ip>[:port]
|
||||||
# @remark user can specifies multiple origin for error backup, by space,
|
# @remark user can specifies multiple origin for error backup, by space,
|
||||||
# for example, 192.168.1.100:1935 192.168.1.101:1935 192.168.1.102:1935
|
# for example, 192.168.1.100:1935 192.168.1.101:1935 192.168.1.102:1935
|
||||||
origin 127.0.0.1:1935 localhost:1935;
|
origin 127.0.0.1:1935 localhost:1935;
|
||||||
|
|
||||||
# for edge, whether open the token traverse mode,
|
# For edge(mode remote), whether open the token traverse mode,
|
||||||
# if token traverse on, all connections of edge will forward to origin to check(auth),
|
# if token traverse on, all connections of edge will forward to origin to check(auth),
|
||||||
# it's very important for the edge to do the token auth.
|
# it's very important for the edge to do the token auth.
|
||||||
# the better way is use http callback to do the token auth by the edge,
|
# the better way is use http callback to do the token auth by the edge,
|
||||||
|
@ -350,19 +351,24 @@ vhost cluster.srs.com {
|
||||||
# default: off
|
# default: off
|
||||||
token_traverse off;
|
token_traverse off;
|
||||||
|
|
||||||
# the vhost to transform for edge,
|
# For edge(mode remote), the vhost to transform for edge,
|
||||||
# to fetch from the specified vhost at origin,
|
# to fetch from the specified vhost at origin,
|
||||||
# if not specified, use the current vhost of edge in origin, the variable [vhost].
|
# if not specified, use the current vhost of edge in origin, the variable [vhost].
|
||||||
# default: [vhost]
|
# default: [vhost]
|
||||||
vhost same.edge.srs.com;
|
vhost same.edge.srs.com;
|
||||||
|
|
||||||
# when upnode(forward to, edge push to, edge pull from) is srs,
|
# For edge(mode remote), when upnode(forward to, edge push to, edge pull from) is srs,
|
||||||
# it's strongly recommend to open the debug_srs_upnode,
|
# it's strongly recommend to open the debug_srs_upnode,
|
||||||
# when connect to upnode, it will take the debug info,
|
# when connect to upnode, it will take the debug info,
|
||||||
# for example, the id, source id, pid.
|
# for example, the id, source id, pid.
|
||||||
# please see: https://github.com/ossrs/srs/wiki/v1_CN_SrsLog
|
# please see: https://github.com/ossrs/srs/wiki/v1_CN_SrsLog
|
||||||
# default: on
|
# default: on
|
||||||
debug_srs_upnode on;
|
debug_srs_upnode on;
|
||||||
|
|
||||||
|
# For origin (mode local) cluster, the co-worker's HTTP APIs.
|
||||||
|
# This origin will connect to co-workers and communicate with them.
|
||||||
|
# please read: https://github.com/ossrs/srs/wiki/v3_EN_OriginCluster
|
||||||
|
coworkers 127.0.0.1:9091 127.0.0.1:9092;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1782,3 +1788,28 @@ vhost stream.transcode.srs.com {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#############################################################################################
|
||||||
|
# The origin cluster section
|
||||||
|
#############################################################################################
|
||||||
|
http_api {
|
||||||
|
enabled on;
|
||||||
|
listen 9090;
|
||||||
|
}
|
||||||
|
vhost a.origin.cluster.srs.com {
|
||||||
|
cluster {
|
||||||
|
mode local;
|
||||||
|
coworkers 127.0.0.1:9091;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
http_api {
|
||||||
|
enabled on;
|
||||||
|
listen 9091;
|
||||||
|
}
|
||||||
|
vhost b.origin.cluster.srs.com {
|
||||||
|
cluster {
|
||||||
|
mode local;
|
||||||
|
coworkers 127.0.0.1:9090;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
19
trunk/conf/origin.cluster.serverA.conf
Normal file
19
trunk/conf/origin.cluster.serverA.conf
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# the config for srs origin-origin cluster
|
||||||
|
# @see https://github.com/ossrs/srs/wiki/v3_EN_OriginCluster
|
||||||
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
|
listen 19350;
|
||||||
|
max_connections 1000;
|
||||||
|
daemon off;
|
||||||
|
srs_log_tank console;
|
||||||
|
pid ./objs/origin.cluster.serverA.pid;
|
||||||
|
http_api {
|
||||||
|
enabled on;
|
||||||
|
listen 9090;
|
||||||
|
}
|
||||||
|
vhost __defaultVhost__ {
|
||||||
|
cluster {
|
||||||
|
mode local;
|
||||||
|
coworkers 127.0.0.1:9091;
|
||||||
|
}
|
||||||
|
}
|
19
trunk/conf/origin.cluster.serverB.conf
Normal file
19
trunk/conf/origin.cluster.serverB.conf
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# the config for srs origin-origin cluster
|
||||||
|
# @see https://github.com/ossrs/srs/wiki/v3_EN_OriginCluster
|
||||||
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
|
listen 19351;
|
||||||
|
max_connections 1000;
|
||||||
|
daemon off;
|
||||||
|
srs_log_tank console;
|
||||||
|
pid ./objs/origin.cluster.serverB.pid;
|
||||||
|
http_api {
|
||||||
|
enabled on;
|
||||||
|
listen 9091;
|
||||||
|
}
|
||||||
|
vhost __defaultVhost__ {
|
||||||
|
cluster {
|
||||||
|
mode local;
|
||||||
|
coworkers 127.0.0.1:9090;
|
||||||
|
}
|
||||||
|
}
|
|
@ -3726,7 +3726,7 @@ srs_error_t SrsConfig::check_normal_config()
|
||||||
} else if (n == "cluster") {
|
} else if (n == "cluster") {
|
||||||
for (int j = 0; j < (int)conf->directives.size(); j++) {
|
for (int j = 0; j < (int)conf->directives.size(); j++) {
|
||||||
string m = conf->at(j)->name;
|
string m = conf->at(j)->name;
|
||||||
if (m != "mode" && m != "origin" && m != "token_traverse" && m != "vhost" && m != "debug_srs_upnode") {
|
if (m != "mode" && m != "origin" && m != "token_traverse" && m != "vhost" && m != "debug_srs_upnode" && m != "coworkers") {
|
||||||
return srs_error_new(ERROR_SYSTEM_CONFIG_INVALID, "illegal vhost.cluster.%s of %s", m.c_str(), vhost->arg0().c_str());
|
return srs_error_new(ERROR_SYSTEM_CONFIG_INVALID, "illegal vhost.cluster.%s of %s", m.c_str(), vhost->arg0().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5157,6 +5157,33 @@ string SrsConfig::get_vhost_edge_transform_vhost(string vhost)
|
||||||
return conf->arg0();
|
return conf->arg0();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vector<string> SrsConfig::get_vhost_coworkers(string vhost)
|
||||||
|
{
|
||||||
|
vector<string> coworkers;
|
||||||
|
|
||||||
|
SrsConfDirective* conf = get_vhost(vhost);
|
||||||
|
if (!conf) {
|
||||||
|
return coworkers;
|
||||||
|
}
|
||||||
|
|
||||||
|
conf = conf->get("cluster");
|
||||||
|
if (!conf) {
|
||||||
|
return coworkers;
|
||||||
|
}
|
||||||
|
|
||||||
|
conf = conf->get("coworkers");
|
||||||
|
for (int i = 0; i < (int)conf->directives.size(); i++) {
|
||||||
|
SrsConfDirective* option = conf->directives[i];
|
||||||
|
if (!option) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
coworkers.push_back(option->arg0());
|
||||||
|
}
|
||||||
|
|
||||||
|
return coworkers;
|
||||||
|
}
|
||||||
|
|
||||||
bool SrsConfig::get_security_enabled(string vhost)
|
bool SrsConfig::get_security_enabled(string vhost)
|
||||||
{
|
{
|
||||||
static bool DEFAULT = false;
|
static bool DEFAULT = false;
|
||||||
|
|
|
@ -190,7 +190,7 @@ public:
|
||||||
virtual SrsConfDirective* copy();
|
virtual SrsConfDirective* copy();
|
||||||
// @param except the name of sub directive.
|
// @param except the name of sub directive.
|
||||||
virtual SrsConfDirective* copy(std::string except);
|
virtual SrsConfDirective* copy(std::string except);
|
||||||
// args
|
// args
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* get the args0,1,2, if user want to get more args,
|
* get the args0,1,2, if user want to get more args,
|
||||||
|
@ -200,7 +200,7 @@ public:
|
||||||
virtual std::string arg1();
|
virtual std::string arg1();
|
||||||
virtual std::string arg2();
|
virtual std::string arg2();
|
||||||
virtual std::string arg3();
|
virtual std::string arg3();
|
||||||
// directives
|
// directives
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* get the directive by index.
|
* get the directive by index.
|
||||||
|
@ -224,7 +224,7 @@ public:
|
||||||
* remove the v from sub directives, user must free the v.
|
* remove the v from sub directives, user must free the v.
|
||||||
*/
|
*/
|
||||||
virtual void remove(SrsConfDirective* v);
|
virtual void remove(SrsConfDirective* v);
|
||||||
// help utilities
|
// help utilities
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* whether current directive is vhost.
|
* whether current directive is vhost.
|
||||||
|
@ -234,7 +234,7 @@ public:
|
||||||
* whether current directive is stream_caster.
|
* whether current directive is stream_caster.
|
||||||
*/
|
*/
|
||||||
virtual bool is_stream_caster();
|
virtual bool is_stream_caster();
|
||||||
// parse utilities
|
// parse utilities
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* parse config directive from file buffer.
|
* parse config directive from file buffer.
|
||||||
|
@ -256,7 +256,7 @@ public:
|
||||||
virtual SrsJsonAny* dumps_arg0_to_integer();
|
virtual SrsJsonAny* dumps_arg0_to_integer();
|
||||||
virtual SrsJsonAny* dumps_arg0_to_number();
|
virtual SrsJsonAny* dumps_arg0_to_number();
|
||||||
virtual SrsJsonAny* dumps_arg0_to_boolean();
|
virtual SrsJsonAny* dumps_arg0_to_boolean();
|
||||||
// private parse.
|
// private parse.
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* the directive parsing type.
|
* the directive parsing type.
|
||||||
|
@ -297,7 +297,7 @@ private:
|
||||||
*/
|
*/
|
||||||
class SrsConfig
|
class SrsConfig
|
||||||
{
|
{
|
||||||
// user command
|
// user command
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* whether srs is run in dolphin mode.
|
* whether srs is run in dolphin mode.
|
||||||
|
@ -322,7 +322,7 @@ private:
|
||||||
* whether show SRS signature and exit.
|
* whether show SRS signature and exit.
|
||||||
*/
|
*/
|
||||||
bool show_signature;
|
bool show_signature;
|
||||||
// global env variables.
|
// global env variables.
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* the user parameters, the argc and argv.
|
* the user parameters, the argc and argv.
|
||||||
|
@ -345,7 +345,7 @@ protected:
|
||||||
* the directive root.
|
* the directive root.
|
||||||
*/
|
*/
|
||||||
SrsConfDirective* root;
|
SrsConfDirective* root;
|
||||||
// reload section
|
// reload section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* the reload subscribers, when reload, callback all handlers.
|
* the reload subscribers, when reload, callback all handlers.
|
||||||
|
@ -362,7 +362,7 @@ public:
|
||||||
virtual bool is_dolphin();
|
virtual bool is_dolphin();
|
||||||
private:
|
private:
|
||||||
virtual void set_config_directive(SrsConfDirective* parent, std::string dir, std::string value);
|
virtual void set_config_directive(SrsConfDirective* parent, std::string dir, std::string value);
|
||||||
// reload
|
// reload
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* for reload handler to register itself,
|
* for reload handler to register itself,
|
||||||
|
@ -564,7 +564,7 @@ public:
|
||||||
* get the cli, the main(argc,argv), program start command.
|
* get the cli, the main(argc,argv), program start command.
|
||||||
*/
|
*/
|
||||||
virtual std::string argv();
|
virtual std::string argv();
|
||||||
// global section
|
// global section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* get the directive root, corresponding to the config file.
|
* get the directive root, corresponding to the config file.
|
||||||
|
@ -619,7 +619,7 @@ public:
|
||||||
virtual std::string get_work_dir();
|
virtual std::string get_work_dir();
|
||||||
// whether use asprocess mode.
|
// whether use asprocess mode.
|
||||||
virtual bool get_asprocess();
|
virtual bool get_asprocess();
|
||||||
// stream_caster section
|
// stream_caster section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* get all stream_caster in config file.
|
* get all stream_caster in config file.
|
||||||
|
@ -649,7 +649,7 @@ public:
|
||||||
* get the max udp port for rtp of stream caster rtsp.
|
* get the max udp port for rtp of stream caster rtsp.
|
||||||
*/
|
*/
|
||||||
virtual int get_stream_caster_rtp_port_max(SrsConfDirective* conf);
|
virtual int get_stream_caster_rtp_port_max(SrsConfDirective* conf);
|
||||||
// kafka section.
|
// kafka section.
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* whether the kafka enabled.
|
* whether the kafka enabled.
|
||||||
|
@ -663,7 +663,7 @@ public:
|
||||||
* get the kafka topic to use for srs.
|
* get the kafka topic to use for srs.
|
||||||
*/
|
*/
|
||||||
virtual std::string get_kafka_topic();
|
virtual std::string get_kafka_topic();
|
||||||
// vhost specified section
|
// vhost specified section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* get the vhost directive by vhost name.
|
* get the vhost directive by vhost name.
|
||||||
|
@ -826,7 +826,7 @@ public:
|
||||||
* get the forward directive of vhost.
|
* get the forward directive of vhost.
|
||||||
*/
|
*/
|
||||||
virtual SrsConfDirective* get_forwards(std::string vhost);
|
virtual SrsConfDirective* get_forwards(std::string vhost);
|
||||||
// http_hooks section
|
// http_hooks section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* get the http_hooks directive of vhost.
|
* get the http_hooks directive of vhost.
|
||||||
|
@ -883,7 +883,7 @@ public:
|
||||||
* @return the on_hls_notify callback directive, the args is the url to callback.
|
* @return the on_hls_notify callback directive, the args is the url to callback.
|
||||||
*/
|
*/
|
||||||
virtual SrsConfDirective* get_vhost_on_hls_notify(std::string vhost);
|
virtual SrsConfDirective* get_vhost_on_hls_notify(std::string vhost);
|
||||||
// bwct(bandwidth check tool) section
|
// bwct(bandwidth check tool) section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* whether bw check enabled for vhost.
|
* whether bw check enabled for vhost.
|
||||||
|
@ -908,7 +908,7 @@ public:
|
||||||
* @remark this is used to protect the service bandwidth.
|
* @remark this is used to protect the service bandwidth.
|
||||||
*/
|
*/
|
||||||
virtual int get_bw_check_limit_kbps(std::string vhost);
|
virtual int get_bw_check_limit_kbps(std::string vhost);
|
||||||
// vhost cluster section
|
// vhost cluster section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* whether vhost is edge mode.
|
* whether vhost is edge mode.
|
||||||
|
@ -939,7 +939,12 @@ public:
|
||||||
* @see https://github.com/ossrs/srs/issues/372
|
* @see https://github.com/ossrs/srs/issues/372
|
||||||
*/
|
*/
|
||||||
virtual std::string get_vhost_edge_transform_vhost(std::string vhost);
|
virtual std::string get_vhost_edge_transform_vhost(std::string vhost);
|
||||||
// vhost security section
|
/**
|
||||||
|
* Get the co-workers of origin cluster.
|
||||||
|
* @see https://github.com/ossrs/srs/wiki/v3_EN_OriginCluster
|
||||||
|
*/
|
||||||
|
virtual std::vector<std::string> get_vhost_coworkers(std::string vhost);
|
||||||
|
// vhost security section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* whether the secrity of vhost enabled.
|
* whether the secrity of vhost enabled.
|
||||||
|
@ -949,7 +954,7 @@ public:
|
||||||
* get the security rules.
|
* get the security rules.
|
||||||
*/
|
*/
|
||||||
virtual SrsConfDirective* get_security_rules(std::string vhost);
|
virtual SrsConfDirective* get_security_rules(std::string vhost);
|
||||||
// vhost transcode section
|
// vhost transcode section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* get the transcode directive of vhost in specified scope.
|
* get the transcode directive of vhost in specified scope.
|
||||||
|
@ -1070,7 +1075,7 @@ public:
|
||||||
* @remark, we will use some variable, for instance, [vhost] to substitude with vhost.
|
* @remark, we will use some variable, for instance, [vhost] to substitude with vhost.
|
||||||
*/
|
*/
|
||||||
virtual std::string get_engine_output(SrsConfDirective* conf);
|
virtual std::string get_engine_output(SrsConfDirective* conf);
|
||||||
// vhost exec secion
|
// vhost exec secion
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* get the exec directive of vhost.
|
* get the exec directive of vhost.
|
||||||
|
@ -1111,7 +1116,7 @@ public:
|
||||||
* get the ingest input url.
|
* get the ingest input url.
|
||||||
*/
|
*/
|
||||||
virtual std::string get_ingest_input_url(SrsConfDirective* conf);
|
virtual std::string get_ingest_input_url(SrsConfDirective* conf);
|
||||||
// log section
|
// log section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* whether log to file.
|
* whether log to file.
|
||||||
|
@ -1134,7 +1139,7 @@ public:
|
||||||
* @remark, /dev/null to disable it.
|
* @remark, /dev/null to disable it.
|
||||||
*/
|
*/
|
||||||
virtual std::string get_ffmpeg_log_dir();
|
virtual std::string get_ffmpeg_log_dir();
|
||||||
// The MPEG-DASH section.
|
// The MPEG-DASH section.
|
||||||
private:
|
private:
|
||||||
virtual SrsConfDirective* get_dash(std::string vhost);
|
virtual SrsConfDirective* get_dash(std::string vhost);
|
||||||
public:
|
public:
|
||||||
|
@ -1150,7 +1155,7 @@ public:
|
||||||
virtual std::string get_dash_path(std::string vhost);
|
virtual std::string get_dash_path(std::string vhost);
|
||||||
// Get the path for DASH MPD, to generate the MPD file.
|
// Get the path for DASH MPD, to generate the MPD file.
|
||||||
virtual std::string get_dash_mpd_file(std::string vhost);
|
virtual std::string get_dash_mpd_file(std::string vhost);
|
||||||
// hls section
|
// hls section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* get the hls directive of vhost.
|
* get the hls directive of vhost.
|
||||||
|
@ -1231,7 +1236,7 @@ public:
|
||||||
* that is, to read max bytes of the bytes from the callback, or timeout or error.
|
* that is, to read max bytes of the bytes from the callback, or timeout or error.
|
||||||
*/
|
*/
|
||||||
virtual int get_vhost_hls_nb_notify(std::string vhost);
|
virtual int get_vhost_hls_nb_notify(std::string vhost);
|
||||||
// hds section
|
// hds section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* get the hds directive of vhost.
|
* get the hds directive of vhost.
|
||||||
|
@ -1255,8 +1260,7 @@ public:
|
||||||
* a window is a set of hds fragments.
|
* a window is a set of hds fragments.
|
||||||
*/
|
*/
|
||||||
virtual double get_hds_window(const std::string &vhost);
|
virtual double get_hds_window(const std::string &vhost);
|
||||||
|
// dvr section
|
||||||
// dvr section
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* get the dvr directive.
|
* get the dvr directive.
|
||||||
|
@ -1292,7 +1296,7 @@ public:
|
||||||
* get the time_jitter algorithm for dvr.
|
* get the time_jitter algorithm for dvr.
|
||||||
*/
|
*/
|
||||||
virtual int get_dvr_time_jitter(std::string vhost);
|
virtual int get_dvr_time_jitter(std::string vhost);
|
||||||
// http api section
|
// http api section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* whether http api enabled
|
* whether http api enabled
|
||||||
|
@ -1327,7 +1331,7 @@ public:
|
||||||
* whether allow rpc update.
|
* whether allow rpc update.
|
||||||
*/
|
*/
|
||||||
virtual bool get_raw_api_allow_update();
|
virtual bool get_raw_api_allow_update();
|
||||||
// http stream section
|
// http stream section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* whether http stream enabled.
|
* whether http stream enabled.
|
||||||
|
@ -1366,7 +1370,7 @@ public:
|
||||||
* the path on disk for mount root of http vhost.
|
* the path on disk for mount root of http vhost.
|
||||||
*/
|
*/
|
||||||
virtual std::string get_vhost_http_dir(std::string vhost);
|
virtual std::string get_vhost_http_dir(std::string vhost);
|
||||||
// flv live streaming section
|
// flv live streaming section
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* get whether vhost enabled http flv live stream
|
* get whether vhost enabled http flv live stream
|
||||||
|
@ -1381,7 +1385,7 @@ public:
|
||||||
* used to generate the flv stream mount path.
|
* used to generate the flv stream mount path.
|
||||||
*/
|
*/
|
||||||
virtual std::string get_vhost_http_remux_mount(std::string vhost);
|
virtual std::string get_vhost_http_remux_mount(std::string vhost);
|
||||||
// http heartbeart section
|
// http heartbeart section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* get the heartbeat directive.
|
* get the heartbeat directive.
|
||||||
|
@ -1408,7 +1412,7 @@ public:
|
||||||
* whether report with summaries of http api: /api/v1/summaries.
|
* whether report with summaries of http api: /api/v1/summaries.
|
||||||
*/
|
*/
|
||||||
virtual bool get_heartbeat_summaries();
|
virtual bool get_heartbeat_summaries();
|
||||||
// stats section
|
// stats section
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* get the stats directive.
|
* get the stats directive.
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
#define RTMP_SIG_SRS_ROLE "cluster"
|
#define RTMP_SIG_SRS_ROLE "cluster"
|
||||||
#define RTMP_SIG_SRS_URL "https://github.com/ossrs/srs"
|
#define RTMP_SIG_SRS_URL "https://github.com/ossrs/srs"
|
||||||
#define RTMP_SIG_SRS_LICENSE "The MIT License (MIT)"
|
#define RTMP_SIG_SRS_LICENSE "The MIT License (MIT)"
|
||||||
#define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2017 " RTMP_SIG_SRS_KEY "(" RTMP_SIG_SRS_AUTHROS ")"
|
#define RTMP_SIG_SRS_COPYRIGHT "Copyright (c) 2013-2018 " RTMP_SIG_SRS_KEY "(" RTMP_SIG_SRS_AUTHROS ")"
|
||||||
#define RTMP_SIG_SRS_PRIMARY RTMP_SIG_SRS_KEY "/" VERSION_STABLE_BRANCH
|
#define RTMP_SIG_SRS_PRIMARY RTMP_SIG_SRS_KEY "/" VERSION_STABLE_BRANCH
|
||||||
#define RTMP_SIG_SRS_HANDSHAKE RTMP_SIG_SRS_KEY "(" RTMP_SIG_SRS_VERSION ")"
|
#define RTMP_SIG_SRS_HANDSHAKE RTMP_SIG_SRS_KEY "(" RTMP_SIG_SRS_VERSION ")"
|
||||||
#define RTMP_SIG_SRS_VERSION SRS_XSTR(VERSION_MAJOR) "." SRS_XSTR(VERSION_MINOR) "." SRS_XSTR(VERSION_REVISION)
|
#define RTMP_SIG_SRS_VERSION SRS_XSTR(VERSION_MAJOR) "." SRS_XSTR(VERSION_MINOR) "." SRS_XSTR(VERSION_REVISION)
|
||||||
|
|
Loading…
Reference in a new issue