/MainServer

in server http proxy for routing port

Primary LanguageTypeScript

그냥 nginx 쓰는게 좋다는 선생님의 말씀으로 사용하지 않는다

MainServer

내가 필요해서 만든 http-proxyexpress, jayson을 이용한 메인 서버

다른 포트에서 연 서버에서 RPC를 이용해 Proxy를 등록한 뒤 expresshttp-proxy를 이용하여 경로에 맞게 들어오는 클라이언트를 해당 서버에게 전달한다.

RPC 포트는 3999

다음과 같이 사용 가능

// util/rpc.ts
import rpc from "jayson";
import { getLogger } from "../util/logger";

const logger = getLogger("RPC");

const client = rpc.Client.http({
    port: 3999,
});

client.once("connection", () => {
    logger.info("Connected to RPC server");
});

client.on("error", (err) => {
    logger.error(err);
});

export default new class RPC {
    public async RegisterProxy(path: string, port: number) {
        return await client.request("RegisterProxy", [path, port], (err: any) => {
            if (err) {
                logger.error(err);
            }
            else {
                logger.info(`Registered proxy for ${path} on port ${port}`);
            }
        });
    }

    public async UnregisterProxy(path: string) {
        return await client.request("UnregisterProxy", [path], (err: any) => {
            if (err) {
                logger.error(err);
            }
            else {
                logger.info(`Unregistered proxy for ${path}`);
            }
        });
    }
}
import express from "express";
import rpc from "./util/rpc";

const port = 3001;

const app = express();

app.get("/index", (res, req) => {
    req.send("Hello World");
});
app.listen(port, () => {
    console.log(`Server started on port ${3001}`);
    rpc.RegisterProxy("/index", port);
});