2025-12-28 12:23:55 +08:00
|
|
|
/**
|
|
|
|
|
* @zh ESEngine 游戏服务器框架
|
|
|
|
|
* @en ESEngine Game Server Framework
|
|
|
|
|
*
|
|
|
|
|
* @example
|
|
|
|
|
* ```typescript
|
|
|
|
|
* import { createServer, Room, onMessage } from '@esengine/server'
|
|
|
|
|
*
|
|
|
|
|
* class GameRoom extends Room {
|
|
|
|
|
* maxPlayers = 4
|
|
|
|
|
* tickRate = 20
|
|
|
|
|
*
|
|
|
|
|
* onJoin(player) {
|
|
|
|
|
* this.broadcast('Joined', { id: player.id })
|
|
|
|
|
* }
|
|
|
|
|
*
|
|
|
|
|
* @onMessage('Move')
|
|
|
|
|
* handleMove(data, player) {
|
|
|
|
|
* // handle move
|
|
|
|
|
* }
|
|
|
|
|
* }
|
|
|
|
|
*
|
|
|
|
|
* const server = await createServer({ port: 3000 })
|
|
|
|
|
* server.define('game', GameRoom)
|
|
|
|
|
* await server.start()
|
|
|
|
|
* ```
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
// Core
|
2026-01-01 18:39:00 +08:00
|
|
|
export { createServer } from './core/server.js';
|
2025-12-28 12:23:55 +08:00
|
|
|
|
|
|
|
|
// Helpers
|
2026-01-01 18:39:00 +08:00
|
|
|
export { defineApi, defineMsg, defineHttp } from './helpers/define.js';
|
2025-12-28 12:23:55 +08:00
|
|
|
|
|
|
|
|
// Room System
|
2026-01-01 18:39:00 +08:00
|
|
|
export { Room, type RoomOptions } from './room/Room.js';
|
|
|
|
|
export { Player, type IPlayer } from './room/Player.js';
|
|
|
|
|
export { onMessage } from './room/decorators.js';
|
2025-12-28 12:23:55 +08:00
|
|
|
|
|
|
|
|
// Types
|
|
|
|
|
export type {
|
|
|
|
|
ServerConfig,
|
|
|
|
|
ServerConnection,
|
|
|
|
|
GameServer,
|
|
|
|
|
ApiContext,
|
|
|
|
|
MsgContext,
|
|
|
|
|
ApiDefinition,
|
|
|
|
|
MsgDefinition,
|
2025-12-31 09:52:45 +08:00
|
|
|
HttpDefinition,
|
2026-01-01 18:39:00 +08:00
|
|
|
HttpMethod
|
|
|
|
|
} from './types/index.js';
|
2025-12-28 12:23:55 +08:00
|
|
|
|
2025-12-31 09:52:45 +08:00
|
|
|
// HTTP
|
2026-01-01 18:39:00 +08:00
|
|
|
export { createHttpRouter } from './http/router.js';
|
2025-12-31 09:52:45 +08:00
|
|
|
export type {
|
|
|
|
|
HttpRequest,
|
|
|
|
|
HttpResponse,
|
|
|
|
|
HttpHandler,
|
|
|
|
|
HttpRoutes,
|
2026-01-01 18:39:00 +08:00
|
|
|
CorsOptions
|
|
|
|
|
} from './http/types.js';
|
2025-12-31 09:52:45 +08:00
|
|
|
|
2025-12-28 12:23:55 +08:00
|
|
|
// Re-export useful types from @esengine/rpc
|
2026-01-01 18:39:00 +08:00
|
|
|
export { RpcError, ErrorCode } from '@esengine/rpc';
|