4.1 Zinx-V0.4增添全局配置代码实现
我们先做一个简单的加载配置模块,要加载的配置文件的文本格式,就选择比较通用的json格式,配置信息暂时如下:
zinx.json
{
"Name":"demo server",
"Host":"127.0.0.1",
"TcpPort":7777,
"MaxConn":3
}现在我们需要建立一个全局配置信息的对象
A) 创建全局参数文件
创建zinx/utils文件夹,在下面创建globalobj.go文件,暂时编写如下。
zinx/utils/globalobj.go
package utils
import (
"encoding/json"
"io/ioutil"
"zinx/ziface"
)
/*
存储一切有关Zinx框架的全局参数,供其他模块使用
一些参数也可以通过 用户根据 zinx.json来配置
*/
type GlobalObj struct {
TcpServer ziface.IServer //当前Zinx的全局Server对象
Host string //当前服务器主机IP
TcpPort int //当前服务器主机监听端口号
Name string //当前服务器名称
Version string //当前Zinx版本号
MaxPacketSize uint32 //都需数据包的最大值
MaxConn int //当前服务器主机允许的最大链接个数
}
/*
定义一个全局的对象
*/
var GlobalObject *GlobalObj我们在全局定义了一个GlobalObject对象,目的就是让其他模块都能访问到里面的参数。
B) 提供init初始化方法
然后我们提供一个init()方法,目的是初始化GlobalObject对象,和加载服务端应用配置文件conf/zinx.json
zinx/utils/globalobj.go
C) 硬参数替换与Server初始化参数配置
zinx/znet/server.go
我们未来方便验证我们的参数已经成功被价值,在Server.Start()方法中加入几行调试信息
zinx/znet/server.go
当然还有一些其他的之前写死的数值,均可以在配置文件配置,用全局参数替换,这里不一一列举。
当前zinx框架目录结构
Last updated
Was this helpful?