SLG游戏服务器演示
客户端演示:https://github.com/llr104/slgclient
鄙视B站、抖音UP主"码神之路",从这里拿演示讲课却不说出处,忽悠小白是自己写的
代码交流群:1054084192
概要
- MySQL数据持久化,ORM映射
- 事件处理支持中间件
- 服务器之间通过WebSocket连接
- 服务器之间RPC调用
- 高并发
多进程服务
- httpserver:提供一些API调用
- gateserver:网关,可部署多个实现负载均衡,客户端所有loginserver、chatserver、slgserver的消息都通过该服务转发
- loginserver:登录服,可部署多个实现负载均衡
- chatserver:聊天服,可部署多个,原则上一个slgserver对应一个chatserver
- slgserver:游戏服,可部署多个,不同服之间的玩家数据不互通
服务端使用简介
- 进入slgserver目录
- 项目已使用go mod管理,推荐使用GoLand打开
- 创建MySQL数据库:在MySQL中执行data/conf/db.sql文件创建服务所需数据库,默认库名为slgdb
- 修改配置:修改data/conf/env.ini中数据库配置,主要是密码、端口改为自己使用的,其他保持默认
- 拉取依赖包:命令行执行go mod tidy
- 生成可执行程序:main目录下包含httpserver、gateserver、loginserver、chatserver、slgserver五个进程代码, 通过go build main/xxxserver.go(上述5个进程源代码)即可生成5个进程执行文件,Windows环境下也可直接执行shell/build.bat 生成5个进程可执行文件,可执行文件存放在bin目录
- 复制配置文件到工作目录:将data文件夹拷贝到bin目录,5个进程会用到data里的配置,Windows环境可运行shell/copydata.bat完成拷贝
- 启动运行:启动5个进程,无顺序要求,Windows环境下可运行shell/run.bat
- 客户端联调:用Cocos Creator打开客户端即可运行联机测试
- 注意在GoLand中点击对应进程run或debug前,需将输出路径和工作路径设为bin目录, 且data目录已拷贝到bin目录,否则进程找不到运行配置文件会异常终止
服务部署
支持docker-compose一键部署,数据库和表都会自动创建,步骤如下:
-
部署需编译Go源码,编译较占内存,2G以下内存可能编译失败,请确保编译内存在2G以上
-
进入slgserver目录
-
执行docker-compose up
-
修改客户端GameConfig.ts文件中的连接地址
import { _decorator } from 'cc'; const GameConfig = { serverUrl: "ws://127.0.0.1:8004", //httpserver地址 webUrl: "http://127.0.0.1:8088", //gateserver地址 } export { GameConfig };