kaven-utils
Version:
Utils for Node.js.
34 lines (33 loc) • 1.59 kB
TypeScript
/********************************************************************
* @author: Kaven
* @email: kaven@wuwenkai.com
* @website: http://blog.kaven.xyz
* @file: [Kaven-Utils] /src/net/proxy/AbstractProxyServer.ts
* @create: 2022-04-18 13:40:29.991
* @modify: 2024-11-01 10:48:07.314
* @version: 5.4.5
* @times: 45
* @lines: 198
* @copyright: Copyright © 2022-2024 Kaven. All Rights Reserved.
* @description: [description]
* @license: [license]
********************************************************************/
import { Socket } from "node:net";
import { KavenAuthentication } from "../authentication/KavenAuthentication.js";
import { HttpRequestMessage } from "../http/HttpRequestMessage.js";
import { HttpProxyUser } from "./HttpProxyUser.js";
export declare abstract class AbstractProxyServer {
protected readonly socketClientMap: Map<Socket, HttpProxyUser>;
EnableLog: boolean;
EnableError: boolean;
Verbose: boolean;
Authorization?: KavenAuthentication;
protected Log(...args: unknown[]): void;
protected Error(...args: unknown[]): void;
protected onData(client: HttpProxyUser, data: Buffer): Promise<void>;
protected writeToServer(req: HttpRequestMessage, proxyToServerSocket: Socket): void;
protected connect(port: number, host?: string): Promise<Socket>;
protected handleHttpRequest(client: HttpProxyUser, req: HttpRequestMessage): Promise<void>;
protected onSocketConnected(userSocket: Socket): void;
protected Stop(client: HttpProxyUser, msg?: string): void;
}