资源描述
安卓组开发项目文档
安卓项目组
2012/01/06
V1.0
文档版本记录
版本号
修改日期
作者
更改说明
V1.0
2012/01/06
史进鹏
文档创建
0 阅读说明
黑色粗体 表示需要重点阅读,蓝色代表MINA框架类的方法,红色代表类名。
文档分4个部分:
(1) 1-5牌类游戏服务端基类;
(2) 6-8继承第一部分基类,定义斗地主游戏服务端主要的类,并在这些类中定义了处理消息队列线程需要的方法
(3) 9-12定义第二部分类的数据管理 13数据库数据初始化到内存的方法类
(4) 服务端交互部分,14-19是MINA服务端监听接收,发送,编解码;20-23创建4个线程对交互数据的处理;24-27定义把不同的协议归成属于哪些服务类,规范处理。
1 房间Room类
(1) 属性
房间名称、房间类型、房间内桌子的数量、房间内的桌子列表、房间内的在线人数
(2) 方法
a 构造方法:构造器默认构造
b 获取房间名称方法
参数:无
返回值:房间名称
c 设置房间名称方法
参数:房间名称
返回值:无
d 获取房间类型方法
注释:获取房间类型(如:新手场、中级场、高级随意配桌)
参数:无
返回值:房间类型
e 设置房间类型方法
参数:房间类型
返回值:无
f 获取房间内桌子数量的方法
参数:无
返回值:房间内桌子的数量
g 设置房间内桌子数量的方法
参数:桌子的数量
返回值:无
h 获取房间内桌子列表的方法
参数:无
返回值:房间内桌子列表
i 设置房间内桌子列表的方法
参数:桌子的列表
返回值:无
j 获取房间内在线人数的方法
参数:无
返回值:房间内的在线人数
k 设置房间内在线人数的方法
参数:在线人数
返回值:无
l 进入房间时添加在线人数的方法
注释:进入房间添加在线人数,并且同一时间只能有一个线程执行此操作(synchronized修饰)
参数:无
返回值:无
m 退出房间时减少在线人数
注释:退出房间减少在线人数,并且同一时间只能有一个线程执行此操作(synchronized修饰)
参数:无
返回值:无
n 自动分配到桌子方法(子类中会实现)
注释:为玩家自动分配到一张桌子
参数:一个玩家的对象
返回值:分配到的桌子(null)
2 桌子Table类
(1)属性
桌子所属房间ID 、桌子名称(现在没用后面可能会用到)、桌子ID、桌子当前用户数、
桌子允许的最大用户数、桌子状态、用户列表(考虑用户数量不确定性用vector)、消息队列
(2)方法
a 构造方法:构造器默认构造
b 设置桌子所属房间的方法
注释:就是设置所在房间的房间类型,是新手场,中级场还是其他类型房间。
参数:房间ID
返回值:无
c 获取桌子所属房间的方法
注释:可在斗地主桌子类的换桌方法中使用,使玩家只能在同一房间内换桌
参数:无
返回值:得到桌子所属房间的ID
d 设置桌子名称的方法
注释:在初始化桌子信息时把桌子名称设置成桌子ID的字符串
参数:桌子名称
返回值:无
e 获取桌子名称的方法
参数:无
返回值:得到桌子名称
f 设置桌子ID的方法
参数:桌子ID
返回值:无
g 获取桌子ID的方法
注释:用于在玩家成功进入桌子后,发送消息告诉玩家进入的是几号桌子
参数:无
返回值:得到桌子ID
h 设置桌子用户数的方法
注释:只为当玩家退出或者进入桌子时要设置一下桌子的当前用户数,私有方法。进入和退出桌子的方法已经加了线程保护synchronized,所以此方法就不用加线程保护。
参数:桌子用户数
返回值:无
i 获取桌子用户数的方法
注释:在斗地主桌子类中给玩家找桌子的方法中会用到,主要配合方法k判断当前桌子玩家数有没有满
参数:无
返回值:得到桌子用户数
j 设置桌子允许最大用户数的方法
注释:在初始化桌子信息时,可根据游戏不同传入不同的参数
参数:桌子允许最大用户数
返回值:无
k 获取桌子允许最大用户数的方法
注释:主要用来判断当前桌子玩家数有没有满
参数:无
返回值:得到桌子允许最大用户数
l 设置桌子状态的方法
注释:如准备中、叫分中、玩牌中
参数:桌子的状态
返回值:无
m 获取桌子状态的方法
参数:无
返回值:得到桌子的状态
n 设置桌子用户列表的方法
注释:在桌子初始化时,给每个桌子加一个包含三个空对象的用户列表
参数:桌子的用户列表
返回值:无
o 获取桌子用户列表的方法
注释:得到一个桌子的用户列表,便于遍历桌子中的每个玩家
参数:无
返回值:得到桌子的用户列表
p 设置桌子消息队列的方法
注释:初始化桌子信息时,每个桌子对象都会new一个消息队列,所以这个方法一般不会用到
参数:桌子的消息队列
返回值:无
q 获取桌子消息队列的方法
注释:获取到桌子的消息队列,可使用队列的add方法添加消息。
参数:无
返回值:得到桌子的消息队列
r 将收到的消息加入到桌子的消息队列中
注释:将消息加入到桌子的消息队列中,会被处理所有桌子消息队列的线程MessageThread处理
参数:消息类型、消息对象
返回值:无
实现过程:
1>创建一个消息队列单元类型MessageUnit的对象unit
2>把参数消息类型和消息对象打包到unit中
3>调用方法q得到消息队列对象,用消息队列对象的添加方法,把unit添加到消息队列中
s 给桌子的玩家列表中的每个玩家发送消息的方法
参数:消息类型、消息对象
返回值:无
t 玩家进入桌子的处理(同一时刻只能有一个线程执行此操作)
注释:被斗地主房间类中找桌子的方法调用(找桌子的方法是先找有2人的桌子,再找有1人的桌子,最后找无人的桌子)
参数:玩家对象
返回值:是否进入成功
实现过程:传入一个玩家对象,判断桌子是否有空位(被找桌子的方法调用时此判断无用),有空位则遍历桌子用户列表中为空的玩家给替换掉进入成功,否则进入失败
u 玩家退出桌子的处理(同一时刻只能有一个线程执行此操作)
注释:玩家退出桌子后对桌子的处理
参数:玩家对象
返回值:无
实现过程:遍历桌子的玩家列表,取得每个玩家的用户名与参数的用户名比较,把相同的置空,减少桌子的用户数
v 进入桌子所属的房间
注释:玩家进入桌子所属的房间后的处理
参数:无
返回值:无
实现过程:通过方法b获取得到桌子所属的房间ID,来增加当前房间的人数
w 退出桌子所属的房间:
注释:玩家退出桌子所属的房间后的处理
参数:用户名
返回值:无
实现过程:通过方法b获取得到桌子所属的房间ID,来减少当前房间的人数并且移除此用户
x 开始游戏:
注释:在子类中会被重写,暂无定义
参数:无
返回值:无
y 结束游戏:
注释:在子类中会被重载,暂无定义
参数:无
返回值:无
z 同步信息:
注释:在子类中会被重载,暂无定义
参数:无
返回值:null
aa 超时处理:
注释:在子类中会被重写,暂无定义
参数:无
返回值:无
3 玩家Player类
(1)属性
用户名、玩家交互、所属的桌子(可能没有桌子),用户ID,昵称
(2)方法
a 构造方法:构造器默认构造
b 发送给当前玩家消息的方法
注释:在子类中会被重载,暂无定义
参数:无
返回值:无
c 设置当前用户名的方法
注释:设置当前用户名
参数:用户名
返回值:无
d 获取当前用户名的方法
注释:获取当前用户名
参数:无
返回值:用户名
e 设置当前玩家交互的方法
注释:设置当前玩家的交互
参数:用户交互实例(被服务端用来识别用户)
返回值:无
f 获取当前用户交互的方法
注释:获取当前玩家交互实例
参数:无
返回值:当前玩家交互实例
g 设置当前用户所在的桌子方法
注释:设置当前用户所在的桌子
参数:当前用户所在的桌子
返回值:无
h 获取当前用户所在的桌子的方法
注释:获取当前用户所在的桌子
参数:无
返回值:用户所在的桌子
i 设置当前用户ID的方法
注释:标记客户端,服务端数据也应该以此为用户信息表的主键
参数:当前用户ID
返回值:无
j 获取当前用户ID的方法
注释:标记客户端,服务端数据也应该以此为用户信息表的主键
参数:无
返回值:用户ID
k 设置当前用户昵称的方法
参数:当前用户ID
返回值:无
l 获取当前用户昵称的方法
参数:无
返回值:用户ID
4 牌Card类
(1)属性
面值、花色、权值
(2)方法
a 构造方法1
注释:初始化牌的面值、花色和权值(权值默认初始化为1)
参数:数值、花色
返回值:无
b 构造方法2
注释:初始化牌的面值、花色和权值 (按传入的参数初始化权值)
参数:数值、花色 、权值
返回值:无
c 获取牌面值的方法
注释:获取牌的面值
参数:无
返回值:面值
d 获取牌花色的方法
注释:获取牌的花色
参数:无
返回值:花色
e 获取牌权值的方法
注释:获取牌的权值
参数:无
返回值:权值
f 设置牌权值的方法
注释:设置牌的权值
参数:权值
返回值:无
5 牌组CardArray类
(1)属性
牌组中牌的张数、牌对象的数组、牌组的权值
(2)方法
a 构造方法1
注释:初始化牌的张数、牌对象的数组、牌组的权值 (牌组权值默认初始化为1)
参数:牌组中牌的张数、牌对象的数组
返回值:无
b 构造方法2
注释:初始化牌的张数、牌对象的数组、牌组的权值 (按传入的参数初始化牌组的权值)
参数:牌组中牌的张数、牌对象的数组、牌组的权值
返回值:无
<3>构造方法3
注释:初始化牌的张数、牌对象的数组、牌组的权值 (按传入的参数初始化牌组的权值)
参数:牌对象
返回值:无
c 构造方法4
注释:初始化牌的张数、牌对象的数组、牌组的权值 (牌组权值默认初始化为1)
参数:无
返回值:无
d 获取牌组中牌的张数方法
注释:获取牌组中牌的张数
参数:无
返回值:牌组中牌的张数
e 获取一个排序后的全部数值数组1
注释:获取一个排序后的全部数值数组(默认按照面值递增排序)
参数:无
返回值:一个排序后的牌组
f 获取一个排序后的全部数值数组2
注释:获取一个排序后的全部数值数组(按照传入参数方式排序)
参数:排序方式(面值正排序1、面值逆排序2、权值大小正排序3或权值大小逆排序4)
返回值:一个排序后的数值数组
g 添加牌对象1
注释:添加牌对象
参数:牌对象
返回值:一个添加后的牌组
h 添加牌对象2
注释:添加牌对象的数组
参数:牌对象的数组
返回值:一个添加后的牌组
i 删除牌对象1
注释:删除牌对象
参数:牌对象
返回值:删除后的数值数组
j 删除牌对象2
注释:删除牌对象的数组
参数:牌对象的数组
返回值:删除后的数值数组
k 比较面值是否相同1
注释:比较数值是否相同
参数:牌对象
返回值:是否相同
l 比较面值是否相同2
注释:比较数值是否相同
参数:牌对象的数组
返回值:是否相同
m 比较数值是否相同3
注释:比较数值是否相同
参数:牌组类的对象
返回值:是否相同
n 比较数值是否包含1
注释:比较牌对象数值是否包含
参数:牌对象
返回值: 是否包含
o 比较数值是否包含2
注释:比较牌对象的数组的数值是否包含
参数:牌对象的数组
返回值: 是否包含
p 比较数值是否包含3
注释:比较牌类对象的数值是否包含
参数:牌组对象
返回值: 是否包含
q 是否清一色
注释:比较牌对象是否相同花色
参数:无
返回值:是、否
r 获取牌组对象的权值
注释:获取牌组对象的权值
参数:无
返回值:牌组对象的权值
s 设置牌组对象的权值
注释:设置牌组对象的权值
参数:无
返回值:无
t 比较牌组对象权值的大小
注释:比较牌组对象权值的大小
参数:要比较的牌组对象的权值
返回值:1(大于)、0(等于)、-1(小于)
//斗地主游戏框架
6 斗地主房间RoomDdz3类
继承Room类
(1)属性
房间底注
(2)方法
a 构造方法:构造器默认构造
b 设置斗地主房间底注的方法
注释:设置斗地主房间底注
参数:要设置的底注的值
返回值:无
c 获取斗地主房间底注的方法
注释:获取斗地主房间底注
参数:无
返回值:房间底注
d 重写父类自动分配桌子的方法
注释:给玩家找到一个有位置的桌子,先找已经有2人的桌子,如果没有再找已经有1人的桌子,如果没有再找已经有0人的桌子,如果没有则返回null
参数:玩家对象
返回值:分配到的桌子
实现过程:调用找桌子方法
e 找桌子的方法
参数:桌子的人数,玩家对象
返回值:找到的桌子
7斗地主桌子TableDdz3类
继承Table类
(1)属性
桌子底注、倍数、谁是地主、最高分数、叫分次数
当前操作人、当前出的牌、牌型、用户的牌(Map)
已准备的人数、叫分人、上一轮出的牌(Map) 、炸弹
春天、时间、时间限制、不出次数
(2)方法
a 构造方法
注释:初始化属性‘用户的牌’、‘上一轮出的牌’为<用户名,牌组>
初始化倍数默认为1.
b 准备游戏
注释:线程MessageThread处理准备游戏时调用此函数
参数:玩家状态,玩家对象
返回值:无
c 叫分
注释:线程MessageThread处理叫分时调用此函数
参数:叫分的消息包,玩家对象
返回值:无
d 不叫分
注释:线程MessageThread处理不叫分时调用此函数
参数:叫分的消息包,玩家对象
返回值:无
e 出牌
注释:线程MessageThread处理出牌时调用此函数
参数:出牌的消息包,玩家对象
返回值:无
f 换桌
注释:线程MessageThread处理换桌时调用此函数
参数:快速游戏的消息包,玩家对象
返回值:无
g 托管/取消托管
注释:线程MessageThread处理托管/取消托管时调用此函数
参数:托管的消息包,玩家对象
返回值:无
h 退出游戏
注释:线程MessageThread处理退出游戏时调用此函数
参数:退出游戏的消息包,玩家对象
返回值:无
i 打牌结果处理
注释:线程ResultThread处理打牌结果时调用此函数
参数:斗地主玩家对象,玩家列表,斗地主桌子对象
返回值:无
j 计算金币
注释:线程ResultThread处理打牌结果时调用此函数
参数:斗地主桌子对象,用户名,结果消息包,是否赢,是否是地主
返回值:结果消息包
k 开始游戏
注释:线程ResultThread处理打牌结果时调用此函数,包括调用洗牌发牌,随机叫分方法
参数:无
返回值:无
l 游戏结束
注释:重置斗地主桌子属性和玩家列表
参数:无
返回值:无
m 离开游戏
参数:玩家对象
返回值:无
n 斗地主桌子属性的获取和设置方法
8 斗地主玩家PlayerDdz3类
继承Player类
(1)属性
金币数、角色名称、胜数、输数、
状态、得分、叫分、是否是地主、
是否准备、打牌超时次数、操作时间、
托管、打牌次数
(2)方法
a 构造方法:构造器默认构造
b 发送消息给自己
参数:消息类型,消息对象
返回值:无
c 斗地主玩家属性的获取和设置
//游戏数据
9 数据库连接池管理类DbManager
创建连接数据库的方法
(1)属性
数据源
(2)方法
a 初始化
注释:读取配置文件,获取数据库的位置,连接用户名和密码等信息,并加载到数据源。
参数:无
返回值:无
b 加载配置信息的方法
注释:把配置信息加载到数据源
参数:要加载的信息实例
返回值:无
c 同步配置信息的方法
注释:如果数据源为空,就重新加载
参数:无
返回值 : 无
d 修改保存的方法
注释:修改数据库内容并保存
参数:数据库名,要修改内容对象
返回值:修改结果
e 获取与数据库的连接实例的方法
参数:无
返回值:得到数据库连接的实例
f 关闭与数据库的连接实例的方法
参数:数据库连接的实例
返回值:无
10 房间数据库管理方法类RoomDao:
(1)属性:无
(2)方法:
a 加载数据库中房间信息的方法
注释:根据游戏类型获取数据库中的房间信息加载到每个新建的房间对象中
参数:游戏类型(三人斗地主或者其他)
返回值:加载好的房间列表
b 加载数据库中用户的信息
注释:根据用户名获取数据库中的用户信息加载到每个新建的用户对象中
参数:用户名
返回值:加载好的用户对象
11 任务数据库管理方法类TaskDao
(1)属性:
任务数据库管理方法类实例
(2)方法:
a 构造方法:空
b 获取任务数据库管理方法类实例
参数:无
返回值:得到任务数据库管理方法类实例
c 新建一个任务数据库管理方法类实例
参数:无
返回值:无
d 获取任务列表
参数:无
返回值:任务列表
e 检测任务是否完成
参数:任务类型,用户名
返回值:完成或未完成
f 查询用户的任务列表
参数:任务类型,用户名
返回值:完成或未完成
g 创建用户名和任务的键值MAP
参数:一组用户名
返回值:用户名和任务的键值MAP
h 更新任务列表
参数:打牌结果处理包实例
返回值:无
12 玩家信息数据库管理方法类UserDao:
属性:无
方法:
a 添加一个用户
参数:用户信息包实例
返回值:无
b 验证用户是否注册(暂时不用)
参数:用户信息包实例
返回值:存在或不存在
c用户登录验证(暂时不用)
注释:在登录成功后就新建个用户信息包来保存当前数据库中的用户信息。包括金币,输数,赢数,等级和网名
参数:用户信息包实例
返回值:用户详细信息实例
13数据库数据初始化到内存的方法类
(1)属性
定义一个房间列表的引用(用来只想新建的房间列表)roomList
(2)方法:
a、初始化房间到内存方法
注释:初始化房间信息,桌子信息和每个桌子一个空用户列表
参数:无
返回值:无
实现过程:
<1>从数据库中加载出房间列表实例给被roomList引用
<2>根据房间信息新建桌子对象并加入到一个桌子列表中,set到房间对象中
<3>新建桌子对象时新建一个用户对象为空的用户列表给桌子对象
b、设置房间列表引用的方法
参数:房间列表引用
返回值:无
c、获取房间列表引用的方法
参数:无
返回值:房间列表引用
//MINA交互框架
14 服务启动Server类
(1)属性
端口号
(2)方法:
a 构造方法:构造器默认构造
b 初始化服务端配置方法:bindServer
注释:初始化服务端配置
参数:无
返回值:无
实现过程:
1>初始化了服务端的TCP/IP 的基于NIO 的套接字
2>然后调用IoSessionConfig设置读取数据的缓冲区大小
3>读写通道均在10秒内无任何操作就进入空闲状态
4>使用MINA为我们提供的编解码器工厂来对字符串进行编解码处理,组装编解码器EncoderBean\BaseMessageEncoder\BaseMessageDecoder三个类
5>注册ServerHandler处理client传过来的数据
6>绑定端口号
c 服务端启动的入口函数:main
注释:服务端启动
参数:输入行参数args
返回值:无
实现过程:
1> new了一个Server类的对象
2> 调用bindServer初始化服务端配置
3> 查询数据库初始化房间信息、桌子信息和用户交互信息
4> HeartBeatThread 线程发送心跳信息
MessageThread 线程处理所有桌子的消息队列
CounterThread线程处理打牌超时,或者准备超时的处理
ResultThread 线程处理显示打牌结果
5> 记录房间和桌子信息于文件(调试使用)
15编码包类EncoderBean类
发送消息时将要发送的信息放入EncoderBean类对象中
(1)属性
编码类型(有默认编码类型)、要编码的内容、自定义编码类型
(2)方法
a 构造方法:构造器默认构造
b 获取编码类型的方法:
注释:获取编码类型
参数:无
返回值:编码类型
c 设置编码类型的方法:
注释:设置编码类型
参数:编码类型
返回值:无
d 获取要编码内容的方法:
注释:获取要编码的内容
参数:无
返回值:编码的内容
e 设置要编码内容的方法:
注释:设置要编码的内容
参数:编码的内容
返回值:无
f 获取自定义编码类型的方法:
注释:获取自定义编码类型
参数:无
返回值:自定义编码类型
g 设置自定义编码类型的方法:
注释:设置自定义编码类型
参数:编码类型
返回值:编码类型
16 编码打包方法类BaseMessageEncoder类
发送消息写入缓冲区实例之后将调用此类中的encode函数
(1)属性:无
(2)方法:
a 构造方法:构造器默认构造
b 编码方法encode:
注释:把写入到缓冲IoBuffer中的编码包类对象编码并发送
参数:session实例、编码包对象、encode输出方法类对象
返回值: 无
17 解码方法类BaseMessageDecoder类
收到client数据后调用此类中的decode方法解包
(1)属性:
定义一个保存在IoSession中的对象的键值
(2)方法:
a 构造方法:构造器默认构造
b 判断是否可解码的方法:decodable
注释:是否可解码
参数:当前session实例,输入缓冲buffer实例
返回值: 是否可解码
c 解码的方法:decode
注释:对收到的数据解码
参数:session实例,输入缓冲buffer实例,decode输出方法类实例
返回值: 解码结果(解码完成、还需要数据)
18 服务端处理数据ServerHandler类
(1)属性:无
(2)方法:
a 构造函数
注释:注册StringHandler处理client传过来的数据
参数:无
b 发送消息的方法:sendBeanMsg
注释:把要发送的消息实例和协议传入,然后发送
参数:session实例,协议值,消息对象
返回值:无
实现过程:
1> 创建数据包PackData类的对象
2> 把传入的参数协议值和消息对象set到packdata对象中
3> 调用方法发送消息方法写入IoBuffer缓冲区
c 发送消息方法:sendMsg
注释:把消息对象参数解释成json的String,再由参数session对象的write方法写入缓冲区,框架会调用enconde函数将缓冲区内的buffer编码打包并发送。
参数:session实例,消息对象
返回值:无
实现过程:
1>创建编码对象bean
2>把消息对象参数解释成json的String,打包到编码对象bean中
3>再由参数session对象的write方法把bean写入缓冲区,由框架调用encode编码发送。
19 服务端处理数据StringHandler类
(1)属性:
用户服务类对象,房间服务类对象,桌子服务类对象,聊天服务类对象
注释:目前将接收到的数据分成这4类来处理,用户服务类单独提出来提供测试使用的注册和登录服务,房间服务类单独提出来提供测试使用的游戏大厅的服务
(2)方法:
a 处理客户端发来的数据handleMessage
注释:客户端发来数据经解码后由ServerHandler发过来,此功能就是从数据中找到消息类型(即协议),根据不同的数据类型执行对应的操作。
参数:当前交互实例,消息实例
返回值:无
实现过程:
<1>把传过来的json型String对象转成数据包类型PackData类对象
<2>使用数据包PackData类的获取数据类型的方法得到数据类型
<3>根据不同的数据类型选择不同的执行方法
//游戏交互数据处理
20 心跳线程HeartBeatThread类
(1)属性:无
(2)方法:
a 构造函数:构造器默认构造
b 线程运行函数:
注释:客户端会持续发送心跳包,服务端接到解码处理后会为此交互设置一个时间点(查看StringHandler),线程反复的把此交互的最新的时间点和当前时间比较,超时则发送消息告诉桌子此用户已掉线并删除此用户(这个操作还需完善)
参数:无
返回值:无
21 计时线程CounterThread类
(1)属性:
定义一个房间列表的引用指向已经初始化的房间列表的实例
(2)方法:
a 构造函数:构造器默认构造
b 线程运行函数:
注释:循环遍历每个房间的每张桌子的状态,针对每种状态做计时处理。准备中状态(默认),踢出超时玩家;叫分中状态,超时提示下家叫分;玩牌中状态超时一次自动出牌,超时多次托管出牌。
参数:无
返回值:无
c 处理准备中桌子的方法:
注释:把进入桌子准备中超时的玩家踢出
22 处理桌子消息队列线程MessageThread类
(1)属性:无
(2)方法:
a 构造函数:构造器默认构造
b 线程运行函数:
注释:遍历每个房间的每个桌子的消息队列,根据消息类型做不同处理
参数:无
返回值:无
23 处理显示结果线程ResultThread类
(1)属性:无
(2)方法:
a 构造函数:构造器默认构造
b 线程运行函数:
注释:循环处理结果显示队列中的消息,每个桌子出完牌都会推送结果显示消息到队列
参数:无
返回值:无
24 聊天信息服务的方法类
(1)属性:无
(2)方法:
a 构造函数:构造器默认构造
b 发送聊天信息方法:
注释:把用户发送过来的聊天信息发给桌上的每一位
参数:当前交互实例,消息对象
返回值:无
25 房间信息服务的方法类
(1) 属性
新建一个房间数据管理实例
(2) 方法
a 构造函数:构造器默认构造
b 查询游戏房间列表
参数:游戏类型
返回值:房间列表
c 进入游戏大厅
注释:玩家发送进入游戏大厅请求的处理
参数:与玩家交互的实例,玩家发送的消息包
返回值:无
d 开始快速游戏的方法
注释:玩家发送快速开始请求的处理,并为该用户创建一个玩家对象从数据库中取出数据设置其属性。包括金币,输数,赢数,等级和网名
参数:与玩家交互的实例,玩家发送的消息包
返回值:无
26 桌子信息服务的方法类
(1)属性:无
(2)方法:
a 构造函数:构造器默认构造
b 玩家点击开始发送请求的处理方法
注释:获取消息包中的用户信息,打包成由桌子发送的消息对象,推送到桌子消息队列中由MessageThread处理
参数:消息类型,消息包
返回值:无
c 玩家点击叫分发送请求的处理方法
注释:获取消息包中的用户信息,打包成由桌子发送的消息对象,推送到桌子消息队列中由MessageThread处理
参数:消息类型,消息包
返回值:无
d 玩家点击不叫分发送请求的处理方法
注释:获取消息包中的用户信息,打包成由桌子发送的消息对象,推送到桌子消息队列中由MessageThread处理
参数:消息类型,消息包
返回值:无
e 玩家点击出牌发送请求的处理方法
注释:获取消息包中的用户信息,打包成由桌子发送的消息对象,推送到桌子消息队列中由MessageThread处理
参数:消息类型,消息包
返回值:无
f 玩家点击换桌发送请求的处理方法
注释:获取消息包中的用户信息,打包成由桌子发送的消息对象,推送到桌子消息队列中由MessageThread处理
参数:消息类型,消息包
返回值:无
g 玩家点击托管/不托管发送请求的处理方法
注释:获取消息包中的用户信息,打包成由桌子发送的消息对象,推送到桌子消息队列中由MessageThread处理
参数:消息类型,消息包
返回值:无
h 玩家点击离开发送请求的处理方法
注释:获取消息包中的用户信息,打包成由桌子发送的消息对象,推送到桌子消息队列中由MessageThread处理
参数:消息类型,消息包
返回值:无
27 用户信息服务的方法userServer类
使用登录服务器
(1)属性:无
(2)方法:
a 构造函数:构造器默认构造
b 用户点击注册请求的处理方法
注释:获取消息包中的用户信息,得到注册结果,发送给用户
参数:交互实例,消息包
返回值:无
c 用户点击登录请求的处理方法
注释:获取消息包中的用户信息,得到登录结果,发送给用户
参数:交互实例,消息包
返回值:无
d 用户开始游戏时发送校验信息的处理方法
注释:获取到客户端发来的游戏校验信息和版本号的消息包,先检测当前客户端是否合法,再检测是否需要更新版本
参数: 交互实例,消息包
返回值:无
展开阅读全文