///
declare namespace network {
/**
* 发送一个异步HTTP(s) Get请求
* @param url 请求的目标地址(包括 Get 请求附带的参数)
* @param callback 当请求返回时执行的回调函数,用于回传HTTP(s)响应结果。
* @returns boolean 是否成功发送请求
*/
function httpGet(
url: string,
callback: (status: number, result: string) => void
): boolean;
/**
* 发送一个异步HTTP(s) Get请求
* @param url 请求的目标地址(包括 Get 请求附带的参数)
* @param header 请求头(包括 Get 请求Request header)
* @param callback 当请求返回时执行的回调函数,用于回传HTTP(s)响应结果。
* @returns boolean 是否成功发送请求
*/
function httpGet(
url: string,
header: any,
callback: (status: number, result: string) => void
): boolean;
/**
* 发送一个异步HTTP(s) Post请求
* @param url 请求的目标地址
* @param data 发送的数据
* @param type 发送的 Post 数据类型,形如 `text/plain` `application/x-www-form-urlencoded` 等
* @param callback 当请求返回时执行的回调函数,用于回传HTTP(s)响应结果。
* @returns boolean 是否成功发送请求
*/
function httpPost(
url: string,
data: string,
type: string,
callback: (status: number, result: string) => void
): boolean;
/**
* 发送一个异步HTTP(s) Post请求
* @param url 请求的目标地址
* @param header 请求头(包括 Post 请求Request header)
* @param data 发送的数据
* @param type 发送的 Post 数据类型,形如 `text/plain` `application/x-www-form-urlencoded` 等
* @param callback 当请求返回时执行的回调函数,用于回传HTTP(s)响应结果。
* @returns boolean 是否成功发送请求
*/
function httpPost(
url: string,
header: any,
data: string,
type: string,
callback: (status: number, result: string) => void
): boolean;
}
declare type WSClientType = number;
declare class WSClient {
/** 处于正常连接中 */
Open: WSClientType;
/** 正在断开连接 */
Closing: WSClientType;
/** 未连接 */
Closed: WSClientType;
/** 当前的连接状态 */
readonly status: WSClientType;
/**
* 创建连接
* @param target 要连接的目标地址
* @returns boolean 是否成功连接
*/
connect(target: string): boolean;
/**
* 异步创建连接
* @param target 要连接的目标地址
* @param callback 当连接成功或者失败时执行的回调函数。
* @returns boolean 是否成功开始尝试连接
*/
connectAsync(target: string, callback: (success: boolean) => void): boolean;
/**
* 发送文本 / 二进制消息
* @param msg 要发送的文本 / 二进制数据
* @returns boolean 是否成功发送
*/
send(msg: string | ByteBuffer): boolean;
/**
* 监听WebSocket事件
* @param event 要监听的事件名
* @param callback 注册的监听函数
* @returns boolean 是否成功监听事件
*/
listen(event: "onTextReceived", callback: (msg: string) => void): boolean;
/**
* 监听WebSocket事件
* @param event 要监听的事件名
* @param callback 注册的监听函数
* @returns boolean 是否成功监听事件
*/
listen(
event: "onBinaryReceived",
callback: (data: ByteBuffer) => void
): boolean;
/**
* 监听WebSocket事件
* @param event 要监听的事件名
* @param callback 注册的监听函数
* @returns boolean 是否成功监听事件
*/
listen(event: "onError", callback: (msg: string) => void): boolean;
/**
* 监听WebSocket事件
* @param event 要监听的事件名
* @param callback 注册的监听函数
* @returns boolean 是否成功监听事件
*/
listen(event: "onLostConnection", callback: (code: number) => void): boolean;
/**
* 关闭连接
* @returns boolean 是否成功关闭连接
* @tips 在处于关闭状态时,请勿继续使用此客户端对象!
*/
close(): boolean;
/**
* 强制断开连接
* @returns boolean 是否成功断开连接
*/
shutdown(): boolean;
/**
* 获取错误码
* @returns Integer 上一次错误产生的错误码
*/
errorCode(): number;
}
declare class HttpRequest {
/** 请求方法 */
readonly method: string;
/** 请求路径 */
readonly path: string;
/** 请求查询参数 */
readonly query: any;
/** 请求查询参数(同上) */
readonly params: any;
/** 请求头 */
readonly headers: any;
/** 请求内容 */
readonly body: string;
/** 请求源地址 */
readonly remoteAddr: string;
/** 请求源端口 */
readonly remotePort: number;
/** 请求版本 */
readonly version: string;
/** 请求路径正则匹配结果 */
readonly matches: Array;
/**
* 获取指定请求头的值
* @param name 请求头名称
* @returns Array 请求头的值数组(如果没有该请求头,则返回`[]`空数组)
*/
getHeader(name: string): Array;
}
declare class HttpResponse {
/** 响应状态码 */
status: number;
/** 响应头 */
header: any;
/** 响应内容 */
body: string;
/** 响应版本 */
version: string;
/** 错误原因 */
reason: string;
/**
* 获取指定请求头的值
* @param name 请求头名称
* @returns Array 请求头的值数组(如果没有该请求头,则返回`[]`空数组)
*/
getHeader(name: string): Array;
/**
* 设置指定响应头的值
* @param name 响应头名称
* @param value 响应头值
* @returns HttpResponse 处理完毕的响应对象
*/
setHeader(name: string, value: any): HttpResponse;
/**
* 写入响应内容
* @param content 响应内容
* @returns HttpResponse 处理完毕的响应对象
*/
write(...content: any[]): HttpResponse;
}
declare class HttpServer {
/**
* 监听 Get 请求
* @param path 请求目录,以`/`开头,可以包含正则表达式。如: `/test/(.+)`
* @param callback 回调函数,在收到符合path的GET请求回调
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onGet(
path: string,
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 Put 请求
* @param path 请求目录,以`/`开头,可以包含正则表达式。如: `/test/(.+)`
* @param callback 回调函数,在收到符合path的Put请求回调
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onPut(
path: string,
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 Post 请求
* @param path 请求目录,以`/`开头,可以包含正则表达式。如: `/test/(.+)`
* @param callback 回调函数,在收到符合path的Post请求回调
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onPost(
path: string,
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 Patch 请求
* @param path 请求目录,以`/`开头,可以包含正则表达式。如: `/test/(.+)`
* @param callback 回调函数,在收到符合path的Patch请求回调
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onPatch(
path: string,
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 Delete 请求
* @param path 请求目录,以`/`开头,可以包含正则表达式。如: `/test/(.+)`
* @param callback 回调函数,在收到符合path的Delete请求回调
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onDelete(
path: string,
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 Options 请求
* @param path 请求目录,以`/`开头,可以包含正则表达式。如: `/test/(.+)`
* @param callback 回调函数,在收到符合path的Options请求回调
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onOptions(
path: string,
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 PreRouting 预路由事件
* @param callback 回调函数,在收到请求时调用。在回调函数中可以修改响应,如果返回`false`,则不会继续路由至对应路径的回调函数(但仍然会触发PostRouting事件)。
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onPreRouting(
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 PostRouting 后路由事件
* @param callback 回调函数,在对应目录的回调函数(或PreRouting事件)执行完毕后调用,在回调函数中可以修改响应
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onPostRouting(
callback: (req: HttpRequest, resp: HttpResponse) => void
): HttpServer;
/**
* 监听 Error 错误事件
* @param callback 回调函数,在错误(状态码 >= 400)时调用
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onError(callback: (req: HttpRequest, resp: HttpResponse) => void): HttpServer;
/**
* 监听 Exception 异常事件
* @param callback 回调函数,在handler中有抛出异常时调用,参数3为异常信息
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
onException(
callback: (req: HttpRequest, resp: HttpResponse,error:string) => void
): HttpServer;
/**
* 监听端口并开启服务器
* @param addr 监听地址,可以是IP地址或域名
* @param port 监听端口
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
listen(addr:string, port:number):HttpServer;
/**
* 监听端口并开启服务器
* @param addr 监听地址,可以是IP地址或域名
* @param port 监听端口
* @returns HttpServer 处理完毕的服务器对象(便于连锁进行其他操作)
*/
startAt(addr:string, port:number):HttpServer;
/**
* 停止服务器
*/
stop():void;
/**
* 获取服务器是否正在运行
* @returns boolean 服务器正在运行与否
*/
isRunning():boolean;
}