Skip to content

williamlv/gameserver

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gameserver

手游服务端

###todo

  • 暂时用redis缓存,实际项目中会使用mysql保存冷数据,游戏角色超过一个星期没有上线,从缓存保存到mysql中并删除;缓存中的数据每天凌晨定时保存到mysql

###通讯架构

  • 架构分为三部分,客户端,网关,中心服务器,以及其他逻辑服务器(例如pvp服务器,活动服务器);
  • 消息头为16个字节;id,消息源或者目标id,4byte;seq,消息序列号,2byte;ret,消息返回结果,2byte;cmd,消息命令字,2byte;unlen,未压缩前长度;len,消息体长度,2byte,理论上不要超过65535字节.
  • 逻辑服务器不保存任何状态,所有热数据都保存在redis;逻辑服务器id不允许相同,启动同个id的服务器会覆盖掉前一个服务器; 逻辑服务器可以允许注册相同cmd,来分摊计算压力;

###项目说明

  • Gate - 网关服务器,用于转发客户端与游戏服务器之间的消息,验证玩家数据,负载均衡,广播,数据统计
  • Login - 登陆服务器,玩家通过登陆服务器获取token,再使用token与Gate登陆,并提供第三方登陆和充值功能
  • Center - 中心服务器,其中全局服务器提供验证token,创建角色等功能
  • Client - 客户端测试程序
  • Tool - 工具集合,目前有一个设置服务器的小程序,后面再补充配置文件读取工具

Releases

No releases published

Packages

No packages published

Languages

  • Go 91.6%
  • Protocol Buffer 4.9%
  • Shell 3.5%