1 Star 0 Fork 0

杨程显 / empty_zinx

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
globalobj.go 1.98 KB
一键复制 编辑 原始数据 按行查看 历史
SLAKM 提交于 2023-07-23 18:08 . [feat]:zinxV1.0 增加tag
package utils
import (
"encoding/json"
"fmt"
"gitee.com/yang-chengxian/empty_zinx/src/ziface"
"io/ioutil"
)
/*
存储一切有关Zinx框架的全局参数, 供其他模块使用
一些参数是可以通过zinx.json由用户进行配置
*/
type GlobalObj struct {
/*
Server
*/
TcpServer ziface.IServer `json:"tcp_server"` //当前Zinx全局的Server对象
Host string `json:"host"` //当前服务器主机监听的IP
TcpPort int `json:"tcp_port"` //当前服务器主机监听的端口号
Name string `json:"name"` //当前服务器的名称
/*
Zinx
*/
Version string `json:"version"` //当前Zinx的版本号
MaxConn int `json:"max_conn"` //当前服务器主机允许的最大连接数
MaxPackageSize uint32 `json:"max_package_size"` //当前Zinx框架数据包的最大值
WorkerPoolSize uint32 `json:"worker_pool_size"` //当前业务工作池的Goroutine的数量
MaxWorkerTaskSize uint32 `json:"max_worker_task_size"` //Zinx框架任务的最大值(限定条件),每个Worker最多承载的消息数量
}
/*
定义一个全局的对外GlobalObj
*/
var GlobalObject *GlobalObj
// Reload 从zinx.json中去加载用于自定义的参数
func (g *GlobalObj) Reload(configPath string) {
files, err := ioutil.ReadDir(".")
if err != nil {
panic(err)
}
for _, file := range files {
if !file.IsDir() {
fmt.Println(file.Name())
}
}
data, err := ioutil.ReadFile(configPath)
if err != nil {
panic(err)
}
err = json.Unmarshal(data, &GlobalObject)
if err != nil {
panic(err)
}
return
}
// 提供一个init方法, 初始化当前的GlobalObject
func init() {
// 默认值
GlobalObject = &GlobalObj{
TcpServer: nil,
Host: "0.0.0.0",
TcpPort: 8999,
Name: "ZinxServerApp",
Version: "V0.7",
MaxConn: 1000,
MaxPackageSize: 4096,
WorkerPoolSize: 10,
MaxWorkerTaskSize: 1024,
}
}
Go
1
https://gitee.com/yang-chengxian/empty_zinx.git
git@gitee.com:yang-chengxian/empty_zinx.git
yang-chengxian
empty_zinx
empty_zinx
v1.0.5

搜索帮助