game/server/gate/config/config.go
2025-06-15 20:29:05 +08:00

61 lines
1.4 KiB
Go

package config
import (
"context"
"encoding/json"
"game/common/config"
"game/common/constant"
"github.com/fox/fox/db"
"github.com/fox/fox/log"
)
const (
gateKey = "gate_config"
gateAddress1 = "0.0.0.0:5100"
gateAddress2 = "0.0.0.0:5101"
)
var Command *config.Command
var Cfg *config.Common
var GateCfg = &GateConfig{}
type GateConfig struct {
Address []string `json:"address"` // 网关地址
}
func InitLog() {
log.Open("./log/gate.log", log.DebugL)
log.Info("")
log.Info("")
log.Info("")
log.Info("-----init log success-----")
}
func LoadConfig(GitCommit, GitBranch, BuildDate string) {
Command = config.ParseCommand()
rdb, err := db.InitRedis(Command.RedisPassword, Command.RedisHost, Command.RedisPort, constant.Redis0Config)
if err != nil {
log.Error(err.Error())
return
}
defer func() { _ = rdb.Close() }()
Cfg, err = config.LoadCommonConfig(rdb, GitCommit, GitBranch, BuildDate)
if err != nil {
log.Error(err.Error())
return
}
if err = config.LoadGameConfig(rdb, gateKey, Cfg); err != nil {
log.DebugF("load config:empty etcd key")
GateCfg = &GateConfig{
Address: []string{gateAddress1, gateAddress2},
}
if bs, err := json.Marshal(GateCfg); err == nil {
err = rdb.Set(context.Background(), gateKey, string(bs), 0).Err()
}
} else {
_ = json.Unmarshal([]byte(Cfg.GameJson), GateCfg)
}
log.DebugF("load common config success")
_ = Cfg
}