littlebot
Published on 2025-04-18 / 0 Visits
0

【源码】基于Node.js和TypeScript的多类型游戏服务器

项目简介

本项目致力于构建一个适用于大多数游戏类型(像RPG、MMO等)的无状态游戏服务器,同时也可用于H5全栈开发。项目运用Node.js、TypeScript、WebSocket等技术,结合Nginx、Redis、MySQL等工具,整体设计简单,易于处理与扩展。

项目的主要特性和功能

  1. 丰富的技术栈:利用Node.js、TypeScript搭建服务器,通过WebSocket实现通信,采用Nginx作为网关,Confd进行中央配置管理,Redis用于缓存和消息队列,MySQL存储数据,Protobuf进行消息交换。
  2. 多应用支持:涵盖缓存应用(将脏角色和全局数据保存到数据库)、游戏应用(处理游戏逻辑)、登录应用(用户认证和服务器发现管理)、GM工具应用(修改服务器名称、发送邮件等)、充值应用(处理用户充值问题)。
  3. 数据管理:可自定义玩家数据结构,通过指定相关文件管理玩家数据和元数据。
  4. 消息交互:支持自定义游戏逻辑的.proto文件,实现客户端与服务器的消息交换,还能编写控制器处理客户端消息。
  5. 会话管理:提供粘性会话、共享会话、粘性会话 + 共享会话备份三种网络链接会话管理方案。

安装使用步骤

安装

建议使用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】