使用GoLang开发游戏服务器(四)

添加全局配置模块

  • 之前的一些端口和IP以及服务器名称等,都是写死在代码中的,我们需要增加全局配置来修改

新增utils包,里面定义globalobj.go文件,用于全局配置
在这里插入图片描述

  • 对外提供全局var GlobalObject *GlobalObj
  • 在加载包文件时init的时候进行初始化
  • 配置文件为json的方式,进行读取
type GlobalObj struct {
	TcpServer ziface.IServer
	Host      string
	TcpPort   int
	Name      string

	Version        string
	MaxConn        int
	MaxPackageSize int
}

var GlobalObject *GlobalObj

func (g *GlobalObj) loadJsonConfig() {
	data, err := ioutil.ReadFile("D:/GoLangCore/src/zinx/Dome/zinxV0.4/config/zinx.json")
	if err != nil {
		fmt.Println("读取zinx.json文件失败:", err)
		panic(err)
	}

	err = json.Unmarshal(data, g)
	if err != nil {
		fmt.Println("json转换失败!", err)
		panic(err)
	}
	fmt.Println("zinx 配置文件加载成功!")
}

func init() {
	GlobalObject = &GlobalObj{
		Host:           "127.0.0.1",
		TcpPort:        8080,
		Name:           "ZinxServerApp",
		Version:        "V0.4",
		MaxConn:        1000,
		MaxPackageSize: 4096,
	}

	GlobalObject.loadJsonConfig()
}

修改之前代码中的硬编码

在这里插入图片描述
在这里插入图片描述