UNPKG

@push.rocks/smartproxy

Version:

A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.

46 lines (45 loc) 1.59 kB
import type { RoutePreprocessor } from './route-preprocessor.js'; /** * Unix domain socket server that receives relayed connections from the Rust proxy. * * When Rust encounters a route of type `socket-handler`, it connects to this * Unix socket, sends a JSON metadata line, then proxies the raw TCP bytes. * This server reads the metadata, finds the original JS handler, builds an * IRouteContext, and hands the socket to the handler. */ export declare class SocketHandlerServer { private server; private socketPath; private preprocessor; private activeSockets; constructor(preprocessor: RoutePreprocessor); /** * The Unix socket path this server listens on. */ getSocketPath(): string; /** * Start listening for relayed connections from Rust. */ start(): Promise<void>; /** * Stop the server and clean up. */ stop(): Promise<void>; /** * Handle an incoming relayed connection from Rust. * * Protocol: Rust sends a single JSON line with metadata, then raw bytes follow. * JSON format: { "routeKey": "my-route", "remoteIP": "1.2.3.4", "remotePort": 12345, * "localPort": 443, "isTLS": true, "domain": "example.com" } */ private handleConnection; /** * Dispatch a relayed connection to the appropriate JS handler. */ private dispatchToHandler; /** * Forward a connection to a dynamically resolved target. * Used for routes with function-based host/port that Rust cannot handle. */ private forwardDynamicRoute; }