介绍
1.并发编程的实现,此例子重点不是网络编程, 因此这个例子不会涉及网络层的细节。
2.另外,棋牌游戏通常由一组服务器协同以支持尽量多的同时在线玩家,但由于这种分布式设计除了增加了局域网通信,从模型上与单服务器设计是一致的,或者说只相当于把多台服务器的计算能力合并成逻辑上的一台单一服务器,所以本示例中我们只考虑单服务器、单进程的设计方法。
需求
对于玩家,需要支持的操作有
1.登录
2.查看房间列表
3.创建房价
4.进入房间
5.玩游戏
6.房间内聊天
7.游戏完成,退出房间
8.退出登录
系统设计
玩家:
ID, 用户名,等级,经验
子系统:
玩家会话管理系统,用于管理每一位登录的玩家,包括玩家信息和玩家状态
大厅管理
房间管理系统,创建、管理和销毁每一个房间
游戏会话管理系统,管理房间内的所有动作,包括游戏进程和房间内聊天
聊天管理系统,用于接收管理员的广播信息
<cgss>
├─<src>
├─<cg>
├─center.go
├─centerclient.go
├─player.go
├─<ipc>
├─server.go
├─client.go
├─ipc_test.go
├─cgss.go