棋牌游戏框架解析(一)

前言

这段时间有空,正好有时间总结之前的东西。

框架

最早做棋牌,cpp的框架,后来又接触到了nodejs的,golang的框架,也看了一些网上开源的游戏框架,记录总结一下。

框架图:
在这里插入图片描述

  • LogicManger:这个框架是支持分区的,每个 logicManager Server管理着一组gate Server 和一组 GameLogic Server,代表一个区。LogicManager会根据游戏类型和分发策略把不同用户分到不同的GameLogic服务器上。

  • GameLogic:游戏逻辑处理服务器, 一个gameLogic 可以是支持一种游戏,也可以支持多种,logic Server启动后连接logicManager,注册自己的信息,包括可以支持哪种游戏等信息。

  • Gate: 是网关,直接和client连接,长连接。屏蔽后面的GameLogic,和LogicManager等服务器,保存用户socket等信息,根据用户状态和消息号区分客户端发过来的消息,分发到不同的服务器上(GameLogic和 logicManager)。

  • login: 登录服务器,主要处理用户登录,可以多个,直接连center服务器。login服务器没有具体处理逻辑,它会把用户登录信息转发给center服务器,然后再把消息回传给client服务器。收到其他消息会直接断开client连接。

  • center: 中心服务器,主要是管理多区manger的。保存用户基本信息,同时同步不同区用户信息变化。LogicManager会在center服务器注册自己的信息,包括manager管理的gate的id,ip:port 。

  • db: db数据库服务器,连接数据库,赋值读写数据库。

功能模块

接下来会通过细分讲解每个部分,因为每个服务器基础功能是通用的, 所以会先讲解通用基础模块,然后在每个服务器依次的讲解。

  • 通用基础模块,分为 网络模块,数据库模块
  • 服务器模块, login,gate,logic,manager ,center,db, 缓存模块

通用基础模块

网络模块

网络模块:底层用的是boost asio 网络模块。LSocket 类是对asio api的封装。
在这里插入图片描述
在这里插入图片描述

关于接收到报文以后的处理流程会在消息协议的部分分析。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值