运行环境

  • nodejs
  • Windows、Linux 或 MacOS 操作系统
  • MySql 数据库

部署服务端

安装依赖包

进入目录:
cd xxx_server

安装依赖包:
sh npm-install.sh(Windows: npm-install.bat)

创建MySql数据库

创建数据库

sql文件路径:./game-server/scripts/mysql.sql

  • 安装MySql数据库(略)
  • 登录MySql:
    mysql –u用户名 –p密码
    (登录成功提示符:mysql>)
  • 创建数据库:
    mysql> create database dev;
  • 选择数据库:
    mysql> use dev;
  • 导入sql文件:
    mysql> source ./game-server/scripts/mysql.sql

修改数据库配置

数据库配置文件为./shared/mysql.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"development": {
"host": "127.0.0.1",
"port": "3306",
"database": "dev",
"user": "user",
"password": "password"
},

"production": {
"host": "****",
"port": "***",
"database": "***",
"user": "user",
"password": "password"
}
}

将”development”环境下的的数据库配置修改为实际的配置.

运行游戏

需要分别启动game-server和web-server.
game-server的启动方式:

  • pomelo start (pomelo的安装方法参考pomelo快速使用指南) 注: 如果上次启动的进程没有完全退出, 可以使用pomelo kill --force来结束所有node进程.

web-server的启动方式:

  • cd web-server && node app.js

访问游戏

客户端配置好之后,使用客户端给的url启动游戏

浏览器需支持websocket, 推荐使用chrome.

相关问题解决办法

  1. 端口冲突

修改服务器配置文件./game-server/config/servers.json,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"development": {
"connector": [{
"id": "connector-server-1",
"host": "120.24.161.192",
"port": 4050,
"clientPort": 3050,
"frontend": true,
"httpServerPort": 4020
}],
"auth": [{
"id": "auth-server-1",
"host": "192.168.1.169",
"port": 5010,
"clientPort": 3060,
"frontend": true
}],
"hall": [{
"id": "hall-server-1",
"host": "192.168.1.169",
"port": 6010,
"hallType": "hallType1"
}, {
"id": "hall-server-2",
"host": "192.168.1.169",
"port": 6020,
"hallType": "hallType2"
}, {
"id": "hall-server-3",
"host": "192.168.1.169",
"port": 6030,
"hallType": "hallType3"
}, {
"id": "hall-server-4",
"host": "192.168.1.169",
"port": 6040,
"hallType": "hallType4"
}]
},
"production": {
//...
}
}

该配置文件分别定义了development和production环境下的各个服务器的配置信息, 包括服务器类型, 地址, 端口号等, production环境下的参数和development环境的结构类似. frontend参数为true时表示前端服务器. 端口冲突时可以修改相应的端口号.

配置文件汇总说明

  • ./game-server/config/master.json

master服务器的配置信息, 包括development和production环境下的服务器地址、端口号等.

master服务器负责启动、关闭各服务器, 并监控所有服务器的状态信息.

  • ./game-server/config/servers.json

connector等服务器的配置信息, 包括development和production环境下的服务器地址、端口号等. 由于connector是前端服务器, 用于接收并转发玩家的请求, 所以会有clientPort.

  • ./scripts/mysql.json

数据库配置信息, 在部署服务端之后需要根据数据库安装的实际情况修改development和production环境的参数.