UNPKG

kaven-utils

Version:

Utils for Node.js.

49 lines (48 loc) 1.65 kB
/******************************************************************** * @author: Kaven * @email: kaven@wuwenkai.com * @website: http://blog.kaven.xyz * @file: [Kaven-Utils] /src/net/proxy/HttpProxyServer.ts * @create: 2022-04-11 17:43:35.253 * @modify: 2024-09-06 15:44:20.891 * @version: 5.4.4 * @times: 73 * @lines: 58 * @copyright: Copyright © 2022-2024 Kaven. All Rights Reserved. * @description: [description] * @license: [license] ********************************************************************/ import { createServer } from "node:net"; import { AbstractProxyServer } from "./AbstractProxyServer.js"; export class HttpProxyServer extends AbstractProxyServer { server = createServer(); Initialize() { this.server.on("connection", (userSocket) => { this.onSocketConnected(userSocket); }); this.server.on("error", (err) => { this.Log("Some internal server error occurred"); this.Error(err); }); this.server.on("close", () => { this.Log("Client disconnected"); }); } /** * * @param port defaults `1080` * @param hostname defaults `127.0.0.1` * @param backlog */ Start(port = 1080, hostname = "127.0.0.1", backlog) { this.Initialize(); this.server.listen(port, hostname, backlog, () => { this.Log(`Http Proxy Server listening on ${hostname}:${port}`); }); } StopServer() { this.server.close(err => { this.Log(`Http Proxy Server closed: ${err}`); }); } }