imsdk-server-core
Version:
轻量级Web服务器框架、WebSocket服务器框架。采用Typescript编写,简单易用。
148 lines (147 loc) • 4.37 kB
TypeScript
/// <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;
}