项目简介
Czinx 是一款个人设计开发的轻量级 TCP 游戏服务器后端架构,旨在满足个人游戏开发需求。它适配 GoDot 游戏开发引擎,该引擎具备完善的网络支持。Czinx 具备高并发处理能力,采用面向接口的开发方式,便于开发者自定义业务逻辑。
项目的主要特性和功能
- 轻量级架构:降低资源占用,提升服务器性能。
- TCP 长连接通信:适合长时间保持连接的游戏应用。
- 高并发处理:可处理大量客户端连接,应对高并发场景。
- 面向接口开发:开发者能够自定义处理逻辑,满足特定游戏需求。
- 日志分级输出:集成 Zap 日志框架,实现日志分级,错误日志输出到文件,大部分日志输出到终端。
- LRU 连接管理:连接管理器采用 LRU 策略,高效利用系统资源。
安装使用步骤
下载安装
bash
配置服务器
修改 config/config.json
文件:
- MaxPackageSize
:最大包长(不包含包头)。
- MaxWorkPoolSize
:最大处理协程数,需设置适合自己 CPU 的数字。
- MaxConn
:最大连接数,超量时调用 LRU 模块断开最近未联系的连接。
- MaxPoolTaskSiz
:每个协程最大可接受任务数,令牌桶的令牌数也按此设置。
示例配置:
json
{
"Name":"demo server",
"Host":"0.0.0.0",
"TcpPort":8080,
"MaxPackageSize": 512,
"MaxConn": 1024,
"MaxWorkPoolSize": 10,
"MaxPoolTaskSize": 512
}
启动服务器
go
s:=Znet.NewServer("test") //传入服务器名
go s.Serve()
注册业务
go
s.AddRouter(0,Znet.NewBaseRouter("client 0 test message"))
s.AddRouter(1,Znet.NewBaseRouter("client 1 test message"))
自定义处理路由
```go var msgId uint32 server.AddRouter(msgId, HandleRouter{}) type HandleRouter struct{}
//处理前 func (HandleRouter) PreHandle(requestInterface Zinterface.RequestI) { panic("implement me") }
//处理中 func (HandleRouter) Handle(requestInterface Zinterface.RequestI) { panic("implement me") }
//处理后 func (HandleRouter) PostHandle(requestInterface Zinterface.RequestI) { panic("implement me") } ```
启动客户端
go
c:=Znet.NewClient("127.0.0.1",8080)
启动客户端并发送测试消息
go
c.Start()
c.SendMessage(1,"https")
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】