摘要: 这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器的设计很不相同。这里先说一下服务器应用的详细设计。 这上面提到的4个服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。这里会采用MVC模式来组织应用层逻辑。图1 Application层基本结构 IController从ITCPServiceObserver继承而来,会与ITCPServerService进行交互,因此它需要解析客户端发过... 阅读全文
posted @ 2012-09-16 19:41 李书淦 阅读(5978) 评论(0) 推荐(2) 编辑
摘要: 内核的几个组件被设计成Service,也就是说这几个模块都要实现如下接口:图1 IService接口 Start方法用来启动服务。 Stop 方法用来关闭服务。 IsService 方法用于查询当前服务是否正在工作。 内核中的几个Service都不能够直接创建,Applications在使用这些Service的时候首先要得到一个IServiceMgr的实例,这被实现成了一个另类地单例模式。IServiceMgr的接口定义如下:图2 IServiceMgr接口 IServiceMgr提供两类接口: 1) 获取Service的接口,这样直接得到具体的Service,是因... 阅读全文
posted @ 2012-09-16 15:07 李书淦 阅读(3424) 评论(0) 推荐(0) 编辑
摘要: 主要有3类Database: ServerInfoDB,UserInfoDB和GameDB。 ServerInfoDB主要存储的是游戏列表的信息,UserInfoDB存储玩家的全局信息,而GameDB就是积分以及积分变化情况。下面分别加以描述。1. ServerInfoDB ServerInfoDB主要存储游戏列表信息。主要有以下几个表: 1. GameTypeInfo,其主要字段为: TypeID:类型标识 ID TypeName:类型名字,例如棋牌类,休闲类 Enable:控制游戏大厅是否显示该类型,默认为 1,即为默认显示 2. GameKindI... 阅读全文
posted @ 2012-09-16 12:39 李书淦 阅读(4048) 评论(0) 推荐(0) 编辑
摘要: 先看一下,下面这张可能的部署图吧。图1 系统布署图 在这个图中,可以看到,客户端的形式多种多样,可能是pc上的一个可执行文件,也可能是通过浏览器打开的一个网页,甚至于手机客户端。它们都通过internet连接到游戏服务器。 在这个部署中有1个CenterServer,1个LogServer,3个LogonServer和很多个RoomServer(只显示了德州扑克的两个房间)。这些Server有可能分布在同一台机器上,也可以分布在不同的机器之上。这对扩容来说是极为方便地。在玩家数量增大,系统不足以承载其网络负载时,只需要买更多的机器,架设更多的RoomServer或者LogonSe... 阅读全文
posted @ 2012-09-16 00:38 李书淦 阅读(5361) 评论(1) 推荐(2) 编辑