/// import { Router, Rule } from './router'; import { Notification, EventNoticer, Event } from './event'; import * as http from 'http'; import * as _conv from './ws/_conv'; import { Service } from './service'; export interface Options { host?: string; printLog?: boolean; autoIndex?: boolean; mimeTypes?: Dict; errorStatus?: Dict; agzip?: boolean; origins?: string[]; allowOrigin?: string; port?: number; fileCacheTime?: number; expires?: number; noCache?: RegExp | string | string[]; timeout?: number; session?: number; maxFileSize?: number; maxFormDataSize?: number; maxUploadFileSize?: number; textEncoding?: string; defaults?: string[]; formHash?: string; disable?: RegExp | string | string[]; root?: string | string[]; temp?: string; virtual?: string; gzip?: RegExp | string | false; staticService?: string; router?: Rule[]; tryFiles?: string; trySuffixs?: string; } /** * @class Server */ export declare abstract class Server extends Notification { protected _isRun: boolean; protected _wsConversations: Map; private _server; private _host; private _port; private _serviceCls; get host(): string; get port(): number; /** * 获取所有的服务名称列表 */ get services(): string[]; /** * 打印log */ readonly printLog: boolean; /** * session timeout default 15 minutes * @type {Number} */ readonly session: number; /** * @type {String} */ readonly formHash: string; /** * 站点根目录 * @type {String} */ readonly root: string[]; /** * 临时目录 * @type {String} */ readonly temp: string; /** * 站点虚拟目录 * @type {String} */ readonly virtual: string; /** * web socket conversation verify origins * @type {String[]} */ readonly origins: string[]; /** * @type {String} */ readonly allowOrigin: string; /** * 是否浏览静态文件目录 * @type {Boolean} */ readonly autoIndex: boolean; /** * 静态缓存文件过期时间,以分钟为单位,为默认为30天 * @type {Number} */ readonly expires: number; /** * no cache RegExp match * @type {RegExp} */ readonly noCache?: RegExp; /** * 静态文件缓存,该值可减低硬盘静态文件读取次数,但需要消耗内存,单位(秒) * @type {Number} */ readonly fileCacheTime: number; /** * Download file size limit * @type {Number} */ readonly maxFileSize: number; /** * Max form data size limit */ readonly maxFormDataSize: number; /** * Upload file size limit * @type {Number} */ readonly maxUploadFileSize: number; /** * 文本文件编码,默认为utf-8 */ readonly textEncoding: string; /** * 错误文件指向 */ readonly tryFiles = ""; /** * 错误文件指向后缀 */ readonly trySuffixs = ""; /** * 请求超时时间(毫秒) * @type {Number} */ get timeout(): number; /** * 静态gzip文件格式 * defaults javascript|text|json|xml * @type {Regexp} */ readonly gzip: RegExp | boolean; /** * 是否动态数据内容压缩 * @type {Boolean} */ readonly agzip: boolean; /** * 默认页 * @type {String[]} */ readonly defaults: string[]; /** * 设置禁止访问的目录 * @type {RegExp} */ readonly disable?: RegExp; /** * 错误状态页 * @type {Object} */ readonly errorStatus: Dict; /** * 配置的文件mime * mime types * @type {Object} */ readonly mimeTypes: Dict; /** * http请求路由器 * @type {Router} */ readonly router: Router; /** * @get impl */ get impl(): http.Server; readonly onWSConversationOpen: EventNoticer>; readonly onWSConversationClose: EventNoticer>; /** * 构造函数 * @constructor * @param {Object} opt (Optional) 配置项 */ constructor(config?: Options); protected abstract initialize(server: http.Server): void; /** * Get wsConversations conversation */ get wsConversations(): IterableIterator<_conv.ConversationBasic>; set timeout(timeout: number); /** * @func interceptRequest(req, res) */ interceptRequest(req: http.IncomingMessage, res: http.ServerResponse): boolean; /** * MIME 获取类型 * @param {String} ename 扩展名或文件名称 * @return {String} */ getMime(name: string): any; /** * 是否正在运行 */ get isRun(): boolean; /** * 启动服务 */ start(): Promise; /** * @func stop() sopt service */ stop(): void; /** * @func restart() restart service */ restart(): void; /** * 通过名称获取服务class */ getService(name: string): typeof Service; /** * @func setService() Registration Service */ setService(name: string, cls: any): void; /** * @func removeService() remove service */ removeService(name: string): void; } declare const _default: { /** * @func setShared */ setShared: (server: Server) => void; /** * @get shared # default web server */ readonly shared: Server | null; }; export default _default;