Skip to content

项目结构

以下为 xymj-colyseus-server 源码目录与主要模块职责索引,便于对照仓库阅读与二次开发。

入口与 Colyseus 配置

路径说明
src/index.ts进程入口:加载 reflect-metadata、安装控制台日志前缀、调用 @colyseus/toolslisten(app)
src/app.config.tsColyseus + Express 一体化配置:注册房间、静态资源、routing-controllers、Swagger、Playground(非生产)、Monitor、数据库与 Redis 初始化。

app.config.tsinitializeGameServer 中注册的 房间名(客户端 joinOrCreate 使用) 包括:

房间名用途
my_roomMyRoom示例 / 模板房间
game_roomGameRoomExample帧同步对局房示例(匹配成功后进入);可替换为自有 Room
matchmaker_roomMatchmakerRoom匹配与组队(主动排队 / 房间码开房)
chat_world_roomWorldChatRoom世界 / 工会 / 附近 / 队伍聊天
loadtest_roomLoadTestRoom无 JWT 的并发压测房(仅测试)

HTTP 与中间件

路径说明
src/controllers/装饰器控制器:LoginControllerAuthControllerHealthController、小游戏相关接口等;autoLoad/index.ts 聚合导出供 useExpressServer 使用。
src/middleware/auth.middlewarevalidation.middlewareerror.middlewaredecorator.middleware
src/routes/index.tsAPI 路由前缀等集中配置。
src/dto/请求体验证 DTO(如认证)。

业务服务与数据

路径说明
src/services/AuthServiceAccessTokenAndLoginServicematchmaking/MatchmakingService(Redis 队列与房间队伍)等。
src/models/src/database/TypeORM 实体与数据库连接。
src/utils/redis.tsRedis 单例,供匹配、聊天跨实例、重连键等使用。
src/utils/jwt.tsJWT 签发与校验。

房间与 Schema

路径说明
src/rooms/schema/Colyseus Schema 状态定义(如 MyRoomState、聊天相关 Schema)。
src/rooms/chat/BaseChatRoom 及四类频道房间;世界频道通过 Redis Pub/Sub 跨进程同步。
src/utils/FrameSync.tsFrameSyncManagerFrameSyncRoom 基类;示例对局房 GameRoomExample 继承它实现固定帧率与 input 消息处理。
src/utils/decorators/RequireAuth.ts房间方法鉴权装饰器(JWT)。

配置与文档相关

路径说明
src/config/应用端口、Colyseus ping、Swagger、小游戏等配置入口。
loadtest/压测脚本示例。

延伸阅读