kaven-utils
Version:
Utils for Node.js.
36 lines (35 loc) • 1.66 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: 2025-10-14 22:58:04.864
* @version: 6.1.0
* @times: 50
* @lines: 200
* @copyright: Copyright © 2022-2025 Kaven. All Rights Reserved.
* @description: [description]
* @license: [license]
********************************************************************/
import { ILoggingAgent } from "kaven-basic";
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;
Logger?: ILoggingAgent;
protected Log(data: unknown): void;
protected Error(data: 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;
}