原作者视频地址:zinx-Golang轻量级TCP服务器框架
本人为自学整理的文档,梳理思考开发框架的基本思路,方法,以及视频中不理解的地方。
若想学习,强烈建议直接观看原作视频即可。
可在下方留言交流。
1.思路
这一节很简单,就是讲解如何使用.json文件给server框架做全局的配置。
2.代码演示
2.1文件树
2.2代码
zinx.json
{
"Name": "zinx V0.3 Server",
"Host":"0.0.0.0",
"TcpPort": 8999,
"MaxConn": 10
}
globalobj.go
package utils
import (
"encoding/json"
"fmt"
"io/ioutil"
"zinx/ziface"
)
/*
存储Zinx框架相关的全局参数,供其它模块使用
用户通过zinx.json进行配置
*/
type GlobalObj struct {
/*
server
*/
TcpServer ziface.IServer
Host string
TcpPort int
Name string
/*
zinx
*/
Version string
MaxConn int
MaxPackageSize uint32
}
/*
此处设置一个全局的变量,在demo_server.go中便可以直接使用
*/
var GlobalObject *GlobalObj
func (g *GlobalObj) Reload() {
data, err := ioutil.ReadFile("conf/zinx.json")
if err != nil {
fmt.Println("zinx.json reload is err:", err)
panic(err)
}
err = json.Unmarshal(data, GlobalObject)
if err != nil {
fmt.Println("zinx.json reload is err:", err)
panic(err)
}
}
/*
提供一个init方法,倒入包的时候,默认直接该函数
*/
func init() {
//若配置文件不加载,则为默认的配置
GlobalObject = &GlobalObj{
Name : "Zinx Server App",
Version: "v0.4",
TcpPort: 8999,
Host: "0.0.0.0",
MaxConn: 1000,
MaxPackageSize: 4096,
}
//加载json配置文件
GlobalObject.Reload()
}