Skip to content

Instantly share code, notes, and snippets.

@stableShip
Last active June 18, 2016 22:26
Show Gist options
  • Save stableShip/afa2ec38eba40704e563 to your computer and use it in GitHub Desktop.
Save stableShip/afa2ec38eba40704e563 to your computer and use it in GitHub Desktop.
代码结构
#代码组织
----------
主要包括: 后端服务器代码game-server和web-server. game-server是游戏socket服务端, 包括所有的游戏逻辑代码. web-server是游戏web服务器, 负责用户注册,第三方平台接入等相关逻辑.
除了这两部分之外, 还有一个公用的shared目录, 用来存放两者共用的代码和配置.
##game-server服务端代码分析
![enter image description here](http://cdiip.img44.wal8.com/img44/515335_20150417100724/142923647751.png)
game-server根目录下的app.js是服务器代码的入口, 其他目录的功能如下:
* /app : 服务端js代码, 包括服务器代码和游戏逻辑代码.
* /config : 服务端配置文件.
* /logs : 服务器端运行时产生的日志文件.
###逻辑代码
逻辑代码主要用来完成具体的业务逻辑, 如玩家的打牌逻辑,玩家管理,房间管理
逻辑代码在/app/services目录下:
![enter image description here](http://cdiip.img44.wal8.com/img44/515335_20150417100724/142923678829.png)
* /landlordService : 提供斗地主打牌游戏服务只提供逻辑服务,不提供状态,逻辑所需状态由外界提供(room&player)
* /playerService : 对内提供player的管理,对外提供player相关服务.
* /area : 对内提供room的管理,对外提供room相关服务
###服务器代码:
![enter image description here](http://cdiip.img44.wal8.com/img44/515335_20150417100724/142923686598.png)
服务器代码在/servers目录下, 通过规约的形式组织, 对外提供rpc接口, 处理客户端和服务端的请求并返回结果.服务端使用的服务器包括:
* /auth : 登录服务器, 用来验证用户登录信息
* /connector: 连接服务器, 负责维护用户;连接, 接受用户数据, 并将服务端的广播数据推送给玩家
* /hall : 大厅服务器,负责打牌逻辑
##web-server代码架构
web-server的页面端代码主要是提供必要的玩家信息与载体给客户端。负责加载客户端游戏本体。
除此之外, web-server中还包括第三方平台的接入逻辑,
![enter image description here](http://cdiip.img44.wal8.com/img44/515335_20150417100724/14292364824.png)
* /config :web-server的相关配置文件
* /lib : 逻辑代码
* /logs : 日志文件夹
* /public : 静态资源.
* /route : 路由.
* /service : 基础服务.
* /views : 页面文件.
* /app.js : web-server的初始化入口, 负责初始化web-server的逻辑代码.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment