
游戏服务端框架之模仿SpringMvc实现消息路由
从上面的模型图可以看出,对于给定的模块号+给定的cmd类型,可以找到唯一的M
发布日期:2021-05-06 20:09:47
浏览次数:10
分类:技术文章
本文共 530 字,大约阅读时间需要 1 分钟。
经典web项目的三层架构
经典web开发项目通常采用三层架构来组织代码。典型的,第一层为表现层,通常使用MVC模式;第二层为业务逻辑层,该层主要是各种service业务操作类;第三层则为数据访问层,通过dao层对数据表进行增删查改操作。
游戏项目的三层架构
类似的,我们的游戏项目也可以采用上面的三层架构。在命名方面,我们部分借鉴了SpringMvc的命名,使用Controller注解对应MVC模式的控制器,使用RequestMapper注解对应的消息处理者(类似于web的http url地址)。网关层收到玩家请求后,将消息分发到对应控制器的指定方法处理者。控制器只用于控制业务流程,具体的业务逻辑将交由业务逻辑层service(游戏项目常用Manager来命名)。
使用控制器处理对应业务模块的请求消息
从前面的Message抽象消息的定义可以看出,每一个请求消息包含有一个模块id,一个模块(一个相对独立的游戏功能模块)映射到唯一的控制器;每一个消息包含一个cmd类型,一个cmd类型就代表该功能模块一个子操作。
模块控制器与cmd业务处理method的一对多关系模型如下:发表评论
最新留言
不错!
[***.144.177.141]2025年03月13日 13时48分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
希尔排序
2019-03-03
C#,asp.net,ashx处理session
2019-03-03
501 5.1.7 Invalid address
2019-03-03
foxmail 登录 exchange 2013 exchange 2016
2019-03-03
Netty高性能原理和框架架构解析
2019-03-03
C/C++ * & : :: -> .等特殊符号
2019-03-03
C++中this指针
2019-03-03
(00)剑指 Offer 13. 机器人的运动范围
2019-03-03
剑指 Offer 18 删除链表的节点
2019-03-03
剑指 Offer 25. 合并两个排序的链表
2019-03-03
MySQL多表查询_索引_事务和隔离和事务原理_复习
2019-03-03
C# WinForm 监视文件变化程序
2019-03-03
Redis主从复制原理
2019-03-03
将本地已有的maven工程导入工作空间
2019-03-03
mysql中没有boolean,而是tinyint
2019-03-03
这个坑
2019-03-03
spring boot和sping的一些注解
2019-03-03
Mybatis整合ehcache
2019-03-03
Java基础之反射
2019-03-03