项目简介
本项目致力于构建一个适用于大多数游戏类型(像RPG、MMO等)的无状态游戏服务器,同时也可用于H5全栈开发。项目运用Node.js、TypeScript、WebSocket等技术,结合Nginx、Redis、MySQL等工具,整体设计简单,易于处理与扩展。
项目的主要特性和功能
- 丰富的技术栈:利用Node.js、TypeScript搭建服务器,通过WebSocket实现通信,采用Nginx作为网关,Confd进行中央配置管理,Redis用于缓存和消息队列,MySQL存储数据,Protobuf进行消息交换。
- 多应用支持:涵盖缓存应用(将脏角色和全局数据保存到数据库)、游戏应用(处理游戏逻辑)、登录应用(用户认证和服务器发现管理)、GM工具应用(修改服务器名称、发送邮件等)、充值应用(处理用户充值问题)。
- 数据管理:可自定义玩家数据结构,通过指定相关文件管理玩家数据和元数据。
- 消息交互:支持自定义游戏逻辑的.proto文件,实现客户端与服务器的消息交换,还能编写控制器处理客户端消息。
- 会话管理:提供粘性会话、共享会话、粘性会话 + 共享会话备份三种网络链接会话管理方案。
安装使用步骤
安装
建议使用Linux/Unix操作系统,在终端执行以下命令:
bash
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
npm install
svn co http://172.16.0.2/svn/guanren/trunk/bingo/ts/server./src/config/data
sudo npm install gulp gulp-cli -g
gulp compile
之后需根据Redis和MySQL部分的说明配置初始环境。
运行
项目包含多个支持游戏服务器的应用,首先要确保已配置好src/config/config.development.json
文件。该文件中的关键配置项及作用如下:
- log:指定日志参数,如目录名和日志级别。
- redis:启动自己的Redis服务器并修改配置。
- mysql:启动自己的MySQL服务器并修改配置,包含游戏数据库(game_db)和登录数据库(login_db),游戏数据库可设置表拆分数量。
- apps:项目支持的应用,如cache_app、game_app、login_app、gm_app、pay_app。
以cache_app为例,运行命令为:
bash
node dist/cache_app/app.js
日志将存储在dist/cache_app/log/
目录下。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】