You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lal/app/demo/dispatch/config.go

61 lines
2.2 KiB
Go

// Copyright 2020, Chef. All rights reserved.
// https://github.com/q191201771/lal
//
// Use of this source code is governed by a MIT-style license
// that can be found in the License file.
//
// Author: Chef (191201771@qq.com)
package main
import "path/filepath"
// Config 服务启动前,设置好一些配置
type Config struct {
// 本服务HTTP监听端口用于接收各lal节点的HTTP Notify
ListenAddr string `json:"listen_addr"`
// ServerId2Server `json:"server_id2server"`
// 配置向本服务汇报的节点信息。
// 如果没有配置的serverId向本服务汇报本服务讲认为该汇报信息无效。
ServerId2Server map[string]Server `json:"servers"`
// 级联拉流时携带该Url参数使得我们可以区分是级联拉流还是用户拉流
PullSecretParam string `json:"pull_secret_param"`
// 检测lal节点update报活的超时时间
ServerTimeoutSec int `json:"server_timeout_sec"`
// MaxSubSessionPerIp
// 当一个client IP对应的sub session大于这个阈值时我们认为是恶意行为踢掉这个IP的所有sub session。
// 如果设置为0或-1表示不限制。
MaxSubSessionPerIp int `json:"max_sub_session_per_ip"`
// MaxSubDurationSec
// 当一个sub session的持续时间超过这个阈值时我们认为是恶意行为踢掉这个sub session。
// 如果设置为0或-1表示不限制。
MaxSubDurationSec int `json:"max_sub_duration_sec"`
}
// Server lal节点静态配置信息
type Server struct {
// 可用于级联拉流的RTMP地址
RtmpAddr string `json:"rtmp_addr"`
// HTTP API接口地址比如向节点发送kick_session时使用
ApiAddr string `json:"api_addr"`
}
var config Config
var DefaultConfFilenameList = []string{
filepath.FromSlash("dispatch.conf.json"),
filepath.FromSlash("./conf/dispatch.conf.json"),
filepath.FromSlash("../dispatch.conf.json"),
filepath.FromSlash("../conf/dispatch.conf.json"),
filepath.FromSlash("../../dispatch.conf.json"),
filepath.FromSlash("../../conf/dispatch.conf.json"),
filepath.FromSlash("../../../dispatch.conf.json"),
filepath.FromSlash("../../../conf/dispatch.conf.json"),
filepath.FromSlash("lal/conf/dispatch.conf.json"),
}