goProject/trunk/game/common/config/baseConfig.go

102 lines
2.2 KiB
Go
Raw Normal View History

2025-01-15 17:36:12 +08:00
package config
import (
"encoding/json"
"fmt"
"goutil/configUtil"
"goutil/debugUtil"
)
// 基础配置对象
type BaseConfig struct {
// ChatCenter监听地址
ChatCenterAddress string
// ManageCenter的API的域名地址
ManageCenterDomain string
// 通信协议tcp/websocket
Protocol string
// 内网地址
PrivateIP string
// 公网地址
PublicIP string
// 为ChatServer提价服务的端口
ChatServerPort string
// 为GameServer提供服务的端口
GameServerPort string
// 为GameServer提供服务的Web端口
GameServerWebPort string
// 是否压缩返回给客户端的数据
IfCompressData bool
// GoPs监控程序监听地址
GopsAddr string
}
func (this *BaseConfig) GetPrivateChatServerAddress() string {
return fmt.Sprintf("%s:%s", this.PrivateIP, this.ChatServerPort)
}
func (this *BaseConfig) GetPrivateGameServerAddress() string {
return fmt.Sprintf("%s:%s", this.PrivateIP, this.GameServerPort)
}
func (this *BaseConfig) GetPrivateGameServerWebAddress() string {
return fmt.Sprintf("%s:%s", this.PrivateIP, this.GameServerWebPort)
}
func (this *BaseConfig) GetPrivateGopsAddress() string {
return fmt.Sprintf("%s:%s", this.PrivateIP, this.GopsAddr)
}
func (this *BaseConfig) GetPublicChatServerAddress() string {
return fmt.Sprintf("%s:%s", this.PublicIP, this.ChatServerPort)
}
func (this *BaseConfig) GetPublicGameServerAddress() string {
return fmt.Sprintf("%s:%s", this.PublicIP, this.GameServerPort)
}
func (this *BaseConfig) GetPublicGameServerWebAddress() string {
return fmt.Sprintf("http://%s:%s/API/player/login", this.PublicIP, this.GameServerWebPort)
}
func (this *BaseConfig) String() string {
bytes, _ := json.Marshal(this)
return string(bytes)
}
var (
baseConfig *BaseConfig
)
func initBaseConfig(config *configUtil.XmlConfig) error {
tempConfig := new(BaseConfig)
err := config.Unmarshal("root/BaseConfig", tempConfig)
if err != nil {
return err
}
baseConfig = tempConfig
debugUtil.Printf("baseConfig:%v\n", baseConfig)
if baseConfig.Protocol != "tcp" && baseConfig.Protocol != "websocket" {
panic("Protocol Error, it should be either tcp or websocket")
}
return nil
}
// GetBaseConfig 获取服务器基础配置
func GetBaseConfig() *BaseConfig {
return baseConfig
}