UNPKG

imsdk-server-core

Version:

轻量级Web服务器框架、WebSocket服务器框架。采用Typescript编写,简单易用。

148 lines (147 loc) 4.37 kB
/// <reference types="node" /> import log4js from 'log4js'; import type { IncomingHttpHeaders } from 'http'; export declare class EnvContext { private _appDir; private _appEnv; private _appName; private _appHost; private _appInIP; private _appPort; private _appSSLs; private _appLinks; private _appNodes; private _encode; private _logcfgs; private _context; /** * @param appDir 节点启动时指定的一个根目录绝对路径 * @param appEnv 节点启动环境类型,如: development、production1、production2、production3... * @param appName 节点类型名称,如 http、home、chat... * @param appHost 节点所在主机名 * @param appInIP 节点所在主机内网IP * @param appPort 节点所监听的端口号 * @param appSSLs 节点SSL证书路径 * @param appLinks 本节点需要连接的其它节点类型名称 * @param appNodes 全部的节点 * @param encode 编码默认值为utf8 */ constructor(appDir: string, appEnv: string, appName: string, appHost: string, appInIP: string, appPort: number | string, appSSLs?: { key: string; cert: string; }, appLinks?: string[], appNodes?: { [key: string]: { host: string; inip: string; port: number; ssls: boolean; }[]; }, encode?: BufferEncoding); /** * 加载对应_envName的log4js配置信息,并初始化log4js * @param configs log4js配置的文件绝对路径 或 log4js配置的数据内容 */ initLog4js(configs: string | { [key: string]: log4js.Configuration; }): void; /** * 加载对应_envName的自定义配置信息 * @param configs 自定义配置的文件绝对路径 或 自定义配置的数据内容 */ loadConfig<T>(configs: string | { [key: string]: T; }): T; /** * 指定环境、指定进程进行定制化回掉 * @param appEnv 指定进程启动环境类型,支持多个环境,如:development|production * @param appName 指定进程类型,支持多个名称,如:gate|home|chat,传null表示全部环境 * @param callback 在这个回调函数里面定制自己的逻辑 */ configure(appEnv: string, appName: string, callback: () => void): void; /** * 获取一个log4js实例 * @param category log4js的category */ getLogger(category: string): log4js.Logger; /** * 缓存键值对数据 * @param key * @param value */ setContext(key: string, value: any): void; /** * 读取键值对数据 * @param key */ getContext(key: string): any; /** * 删除键值对数据 * @param key */ delContext(key: string): void; /** * 创建多级文件夹 * @param dirname 文件夹路径 */ mkdirsSync(dirname: string): boolean; /** * 获取IPV4地址 * @param request http请求 * @param headerField 代理服务器的请求头字段名称 */ getIPV4(request: { headers: IncomingHttpHeaders; ip: string; }, headerField?: string): string; /** * 格式化日期 * @param date * @param fmt */ formatDate(date: Date, fmt: string): string; /** * 计算md5 * @param data 要计算编码的字符串 */ getMd5(data: string): string; /** * 读取ssl证书并返回 */ readSSLKerCert(): { key: string; cert: string; }; /** * 判断一个对象是否为空 * @param obj */ isEmptyObject(obj: any): boolean; /** * 模拟休眠 * @param time 毫秒 */ sleep(time: number): Promise<void>; get dir(): string; get env(): string; get name(): string; get host(): string; get inip(): string; get port(): number; get ssls(): boolean; get links(): string[]; get nodes(): { [key: string]: { host: string; inip: string; port: number; ssls: boolean; }[]; }; get encode(): BufferEncoding; /** * 根据环境变量创建上下文实例 * @param processEnv * @param encode */ static createByProcessEnv(processEnv: any, encode?: BufferEncoding): EnvContext; }