import { IWebServer } from "./Server/WebServer/IWebServer"; import { IWebSocketServer } from "./Server/WebSocketServer/IWebSocketServer"; import { DbConfig } from "./Config/DbConfig"; import minimist from "minimist"; import { ISocketServer } from "./Server/SocketServer/ISocketServer"; /** * cgserver 框架的主容器,统一管理所有服务器的生命周期。 * * @remarks * CgServer 负责: * - 管理 WebServer / WebSocketServer / SocketServer 的注册与启停 * - 统一初始化所有数据库连接 * - 处理进程级事件(启动、退出、未捕获异常) * - 解析命令行参数 * * @example * ```ts * import { cg } from "cgserver"; * * let server = cg.global.gCgServer; * server.addListener("start", async () => { * console.log("所有服务器已就绪"); * }); * ``` */ export declare class CgServer { protected _webservers: IWebServer[]; /** 已注册的 HTTP 服务器列表 */ get webServers(): IWebServer[]; protected _websocket_servers: IWebSocketServer[]; /** 已注册的 WebSocket 服务器列表 */ get websocketServers(): IWebSocketServer[]; protected _socket_servers: ISocketServer[]; /** 已注册的 TCP Socket 服务器列表 */ get socketServers(): ISocketServer[]; protected _events: { [name: string]: Function[]; }; protected _debug: boolean; /** 是否为调试模式(通过 `-d` 命令行参数启用) */ get debug(): boolean; protected _custom_process_id: string; /** * 当前进程的用户自定义进程 ID。 * 与操作系统进程 ID 无关,用于业务层标识。 */ get customprocessid(): string; /** * 设置当前进程的用户自定义进程 ID。 * 与操作系统进程 ID 无关,用于业务层标识。 */ set customprocessid(value: string); /** 数据根目录路径 */ get dataRootDir(): string; protected _timezone: string; /** 当前时区,默认为 `"Asia/Shanghai"` */ get timezone(): string; set timezone(value: string); protected _argv: minimist.ParsedArgs; /** * 解析后的命令行参数对象。 * * @example * ``` * $ node index.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz * // { * // _: ['foo', 'bar', 'baz'], * // x: 3, y: 4, n: 5, * // a: true, b: true, c: true, * // beep: 'boop' * // } * ``` */ get argv(): minimist.ParsedArgs; constructor(); /** 初始化:解析命令行参数,注册进程事件监听 */ init(): void; protected _done: number; /** 当所有服务器都就绪后触发 `"start"` 事件 */ onStart(): void; /** 进程退出时的清理逻辑 */ onExit(): Promise; /** * 注册生命周期事件监听器。 * * @param event - 事件类型:`"start"` | `"exit"` | `"uncaughtexception"` * @param func - 回调函数 */ addListener(event: "start" | "exit" | "uncaughtexception", func: () => void): void; /** * 移除生命周期事件监听器。 * * @param event - 事件类型 * @param func - 要移除的回调函数 * @returns 是否成功移除 */ removeListener(event: "start" | "exit" | "uncaughtexception", func: () => void): boolean; /** 处理未捕获的异常,记录日志并通知监听器 */ onUnCaughtException(e: any): void; /** * 注册一个 HTTP 服务器实例。 * @param server - 继承自 IWebServer 的服务器实例 */ addWebServer(server: IWebServer): void; /** * 注册一个 WebSocket 服务器实例。 * @param server - 继承自 IWebSocketServer 的服务器实例 */ addWebSocketServer(server: IWebSocketServer): void; /** * 注册一个 TCP Socket 服务器实例。 * @param server - 继承自 ISocketServer 的服务器实例 */ addSocketServer(server: ISocketServer): void; /** * 统一初始化所有数据库连接。 * * @param dbcfg - 数据库配置对象,包含 MySQL / MSSQL / Redis / MongoDB 配置 * * @remarks * 初始化顺序:MSSQL → MySQL → Redis → MongoDB。 * MongoDB 支持多实例:`dbcfg.mongos` 数组 + `dbcfg.mongo` 单实例都会生效。 */ initDb(dbcfg: DbConfig): Promise; /** 暂停所有注册的服务器(HTTP/WebSocket/Socket),停止接受新连接 */ pause(): void; /** 恢复所有已暂停的服务器 */ resume(): void; } /** CgServer 的全局单例 */ export declare let gCgServer: CgServer;