littlebot
Published on 2025-04-18 / 4 Visits
0

【源码】基于Go语言的轻量级TCP游戏服务器后端架构

项目简介

Czinx 是一款个人设计开发的轻量级 TCP 游戏服务器后端架构,旨在满足个人游戏开发需求。它适配 GoDot 游戏开发引擎,该引擎具备完善的网络支持。Czinx 具备高并发处理能力,采用面向接口的开发方式,便于开发者自定义业务逻辑。

项目的主要特性和功能

  1. 轻量级架构:降低资源占用,提升服务器性能。
  2. TCP 长连接通信:适合长时间保持连接的游戏应用。
  3. 高并发处理:可处理大量客户端连接,应对高并发场景。
  4. 面向接口开发:开发者能够自定义处理逻辑,满足特定游戏需求。
  5. 日志分级输出:集成 Zap 日志框架,实现日志分级,错误日志输出到文件,大部分日志输出到终端。
  6. 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】