Skip to content

tidaybreak/game-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

game-server

a c++ game server

1.2 模块划分 Daemon_server 守护进程模块 Gate_server 网关模块 用于转发客户端与服务端的消息请求 Logic_server 逻辑模块 背包,组队等相关的逻辑 Chat_server 聊天模块 其他模块直接通过SOCKET向聊天模块发消息,不用数据库 Record_server 日志模块 写流水和写操作日志 Scene_server 场景模块 战斗移动相关的逻辑

模块间的通信:

  1. 地图模块直接跟聊天模块相连接,单向通信,只从地图模块发聊天广播信息到聊天模块;
  2. 日志全部通过日志模块写入磁盘,其他模块的日志通过SOCKET转发到日志模块写入;

1.3 模块内的基本类说明 ***Monitor 是资源管理器 ***Unit 是逻辑处理线程 ***Receiver 是收包线程 ***Sender 是接包线程 ***Packer 是组包线程 Epoll_watcher 是事件响应器;

2 逻辑架构 2.1 模块编号划分 01 逻辑模块 02 场景模块 03 聊天模块 04 网关模块 05 日志模块

2.2 包结构 2.2.1 客户端请求包结构

2.2.2 服务端返回包结构

2.3 逻辑消息划分 2.3.1 客户端请求和回复的消息号划分 请求的消息号: 101***** 请求逻辑模块处理(发到网关) 102***** 请求场景模块处理(发到网关) 103***** 请求聊天模块处理(发到聊天服) 104***** 请求网关模块处理(发到网关) 105***** 请求日志模块处理(发到网关)

对应的回复消息号: 501***** 502***** 503***** 504***** 505*****

2.3.2 主动通知(或广播)客户端的消息 80000001 错误提示 80000002 提示消息 810***** 2.3.3 客户端心跳消息 请求的消息号: 99999999 对应的回复消息号: 99999999

2.3.4 错误号 1******* 系统错误号 2.3.5 服务端内部请求的消息号划分(返回用同样消息号) 200***** 底层消息 201***** 请求逻辑模块处理 202***** 请求场景模块处理 203***** 请求聊天模块处理 204***** 请求网关模块处理 205***** 请求日志模块处理

2.3.6 服务端数据库请求消息号划分 3*******

2.3.7 服务端内部定时器消息号划分 600***** 全局定时器 601***** 逻辑模块定时器 602***** 场景模块定时器 603***** 聊天模块定时器 604***** 网关模块定时器 605***** 日志模块定时器