6.0.23 • Published 1 year ago

gamecloud v6.0.23

Weekly downloads
2
License
ISC
Repository
github
Last release
1 year ago

游戏云服务器 gamecloud

概述

游戏云服务器(gamecloud)是一个基于NodeJS技术开发的纯JavaScript服务端引擎,为H5游戏量身定做,其特点如下:

  • 开箱即用。

游戏云服务器 的设计理念是,"简单是不够的,要极其简单"。

  • 开放式设计。

游戏云服务器 自然融入 npm 生态,你可以通过第三方库或自定义代码,利用插件、扩展服务、中间件、自定义事件、新增核心类等机制,随时对框架进行补足和增强。

  • 可伸缩性设计

关于集群

  • gamecloud 是一个可伸缩集群,整个集群由单台或多台服务器组成。
  • 集群运行多个不同类型的节点,灵活分配于各台服务器上,可在 ./gameconfig.js 中完成配置
  • 建议起步阶段以单服务器模式运行,熟悉体系后再扩展至由多台服务器组成的集群
let config = { 
    "servers": [],      //集中配置集群中所有节点,在集群中所有服务器上保持一致
    "apps": [],         //配置当前服务器运行的节点列表
}
  • 集群中,有且只有一个节点兼任门户节点
    "apps" : [
        {
            "name"      : "Chick_IOS_1",
            "script"    : "facade/start.js",
            "cwd"         : "./",
            "error_file" : "./logs/ios1/app-err.log",
            "env": {
                "NODE_ENV": "production",
                "sys":{
                    "serverType": "IOS",
                    "serverId": 1,
                    "portal": true  //指示该节点兼任门户
                }
            }
        }
    ]

搭建运行环境

  1. 安装系统软件,如已经具备条件请跳过
  • 安装 mysql 数据库软件,默认排序规则选择 utf8_general_ci

  • 安装 python@2.7

  • 安装 git@2.19.1

  • 安装 node@10.13

  • 安装 node-gyp

npm i -g node-gyp
  • Windows环境下补充安装
npm i -g --production windows-build-tools
  1. 下载软件仓库、安装依赖包
git clone https://github.com/bookmansoft/gamecloud
cd gamecloud
npm i
  1. 创建并初始化数据库

该项工作在集群的每台数据库服务器上都需要独立执行

如何快速执行 如果当前服务器已安装mysql,且用户名密码对为 root / helloworld 时,可直接执行如下指令,并跳过 3.1 3.2 3.3 各步骤

npm run dbinit
  • 3.1 配置数据库连接参数,用于本地数据库的数据迁移流程

    修改配置文件 ./config/migrations/gamecloud.json , 修改其中 password 等字段

    该配置文件在集群中不同服务器上独立配置

    {
    "dev": {
        "driver": "mysql",
        "user": "root",
        "password": "helloworld",
        "host": "localhost",
        "database": "gamecloud",
        "multipleStatements": true
    }
    }
  • 3.2 手动创建数据库,执行此步骤后请跳过 3.3

    • 创建数据库 gamecloud , 建议使用此默认名称,如修改则需相应调整各配置文件

    • 数据库初始化

      npm run commit
  • 3.3 自动创建数据库

    • 配置数据库连接参数,用于本地数据库的创建流程

      修改配置文件 ./config/database.json , 修改其中 password host 字段

      该配置文件在集群中不同服务器上独立配置

      {
      "dev": {
          "driver": "mysql",
          "user": "root",
          "password": "helloworld",
          "host": "localhost"
      }
      }
    • 创建并初始化数据库

      npm run dbinit

特别提醒:为支持存取中文内容,数据库排序规则必须设置为 utf8-general-ci 否则在操作中文内容时会引发数据截断错误

运行游戏云服务器

  1. 配置数据库连接参数,用于各节点的数据库连接串

修改 ./gameconfig.js 文件中 sa pwd host 字段

/**
 * 统一的数据库连接串,如果不同服务器连接不同数据库,需要改写 config 中各个 mysql 字段
 */
let mysql = {
    "logging" : false,          //是否开启日志
    "db": "gamecloud",          //数据库名称    
    "sa": "root",               //数据库用户名
    "pwd": "helloworld",        //数据库用户密码
    "host": "127.0.0.1",        //数据库服务器IP地址
    "port": 3306                //数据库服务器端口号
};
  1. 运行服务器

该步骤使用了 PM2 进程管理软件,一次性启动所有当前服务器上已配置节点

npm start
  1. 运行单元测试
npm run test
  1. 停止游戏云服务器
npm stop

调试代码

建议使用 vs code 进行代码调试工作,

  • 在 vs code 中配置 launch.json:
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "启动程序",
            "program": "${workspaceFolder}\\facade\\start.js"
        }
    ]
}
  • 按下 F5 运行,设置合适的断点

  • 运行单元测试,触发断点,进入单步跟踪模式

npm run test

部署网站

gamecloud 作为游戏服务端引擎的同时,也可以承担静态网站服务器功能:

//在启动节点的同时,设置静态资源映射
facade.boot({
    static: [['/client/', './web/client']],
});

服务器启动后,可以通过浏览器访问 http://localhost:9901/client 访问工作目录的子目录 web/client 中的静态资源

典型的工作场景为: 1. 架设 gamecloud 作为 JSONP 服务器,并设置静态资源映射. 建议通过基于 gamecloud 的 gamegold-mgr-server 脚手架项目进行二次开发 https://github.com/bookmansoft/gamegold-mgr-server

  1. 使用 React / AngularJs / VUE / CocosCreator 开发单页面应用,打包并拷贝到已映射目录中,即可对外提供服务

Roadmap

V1.5 和游戏金公链平台无缝整合,一键式开发DAPPS应用 V1.6 内置 BTC / BCH / ETH 等主流数字货币的支付接口 V2.0 支持 k8s 架构,进一步增强易用性和可伸缩性

6.0.23

1 year ago

6.0.22

1 year ago

6.0.21

1 year ago

6.0.20

1 year ago

6.0.16

1 year ago

6.0.19

1 year ago

6.0.18

1 year ago

6.0.17

1 year ago

6.0.15

1 year ago

6.0.13

1 year ago

6.0.12

1 year ago

6.0.11

1 year ago

6.0.10

1 year ago

5.1.5

1 year ago

6.0.7

1 year ago

6.0.6

1 year ago

6.0.9

1 year ago

6.0.8

1 year ago

6.0.1

1 year ago

6.0.0

1 year ago

6.0.3

1 year ago

6.0.2

1 year ago

6.0.5

1 year ago

6.0.4

1 year ago

5.1.3

5 years ago

5.1.2

5 years ago

5.1.1

5 years ago

5.1.0

5 years ago

5.0.8

5 years ago

5.0.7

5 years ago

5.0.6

5 years ago

5.0.5

5 years ago

5.0.3

5 years ago

5.0.2

5 years ago

5.0.1

5 years ago

5.0.0

5 years ago

2.5.8

5 years ago

2.5.7

5 years ago

2.5.6

5 years ago

2.5.5

5 years ago

2.5.3

5 years ago

2.5.2

5 years ago

2.5.1

5 years ago

2.5.0

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.2.28

5 years ago

2.2.27

5 years ago

2.2.26

5 years ago

2.2.25

5 years ago

2.2.23

5 years ago

2.2.22

5 years ago

2.2.21

5 years ago

2.2.20

5 years ago

2.2.19

5 years ago

2.2.18

5 years ago

2.2.17

5 years ago

2.2.16

5 years ago

2.2.15

5 years ago

2.2.12

5 years ago

2.2.11

5 years ago

2.2.10

5 years ago

2.2.9

5 years ago

2.2.8

5 years ago

2.2.7

5 years ago

2.2.6

5 years ago

2.2.5

5 years ago

2.2.3

5 years ago

2.2.2

5 years ago

2.2.1

5 years ago

2.2.0

5 years ago

2.1.5

5 years ago

2.1.3

5 years ago

2.1.2

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.2.8

5 years ago

1.2.7

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.26

5 years ago

1.1.25

5 years ago

1.1.23

5 years ago

1.1.22

5 years ago

1.1.21

5 years ago

1.1.20

5 years ago

1.1.19

5 years ago

1.1.18

5 years ago

1.1.17

5 years ago

1.1.16

5 years ago

1.1.15

5 years ago

1.1.12

5 years ago

1.1.11

5 years ago

1.1.10

5 years ago

1.1.9

5 years ago

1.1.8

6 years ago

1.1.7

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago