【电魂】我对m3服务器的理解(一)
根据MMServer.sln的结构来确认
Common
CommonShare
一些重要的通用方法和工具,一般需要先行编译。
DependModules
依赖库
ServerBase
定义了SeBaseServerNew和SeNetworkService,前者用来发送心跳包,注册包,更新连接等方法;后者用于检测网络状态(?
Table
根据策划xml动态生成的c++代码
TestClient
没看,但是感觉没卵用,现在用u3d客户端直接测试。
SeBaseServer
所有的服务器都基于一个基础服务器类SeBaseServer,其中包括一些通用功能,比如初始化,更新,以及网络负载均衡等。
启动服务器后,每个server都会启动一个监听窗口,实时打印出服务器的状态,连接情况。
服务器架构
项目结构
每个Server的目录下有几个固定的文件路径:
xxxServer
|
├── (D)Logic/GameLogic: 处理业务逻辑
├── (D)MSGProcess
| └── (D)yyyServer: yyyServer的Send和Agent,自定义的Agent用来处理回调(Handle函数)
| └── (D)Auto: 自动生成的inl,列出需要实现的函数文件头
├── (D)Stream: 流处理,传输统一使用二进制
└── xxxServer.h/cpp/-Def.h: 服务器的初始化,以及输出到控制台的信息序列化
AuctionServer
交易服不太了解,貌似暂时没有用,需要监听服务器端口、WS,连接DS【MySQL】
ChatServer
单独的聊天服。处理WS中的聊天,需要监听服务器端口、TS,连接DS
CommunityServer
处理社团相关,需要监听服务器端口、TS,连接DS
ContactServer
好友服。需要监听服务器端口、TS,连接DS【好友缓存】、DLS、SS
DBLogServer
日志系统,目前没卵用。监听服务器端口、WS、GS、ContactS、MS、CommunityS、ChatS
DBServer
连接指定的数据库表,提供服务器处理服务。监听服务器端口、TS、ContactS
GlobalServer
全局服。监听服务器端口、WS、LS、HttpS、MS、连接DS、NodeJSHttp集群、MySQL【全服账户信息】
LoginServer
登录服集群。连接GS
MatchServer
匹配服?监听服务器端口、RS、TS、HttpS、DLS、SS
RaceServer
比赛服,处理对战时的逻辑。TCP监听,连接MS
SwitchServer
听说是取代TS的一种方案,让切换服务器的时候绕开TS。监听服务器端口、MS、ContactS、WS
TcpServer
连接检测,socket。监听TS
TownServer
中心Server,基本上所有的Server的中转站。监听服务器端口、TS,连接WS、MS、DS、ContactS、CommunityS、ChatS
WorldServer
逻辑服/支持水平扩展。监听服务器端口、TS、HttpS,连接GS、DS【逻辑缓存】、Redis【位置信息】、DLS、AS(已注释)、SS