import env from "./env"; import { AgentOp } from "./typings/agent"; import { Client } from "@gswl/ws"; import os from "os"; export class AgentClient { private client: Client; constructor() { this.init(); } private async init() { const client = new Client(env.AgentServer, { retryInterval: 5000 }); this.client = client; client.delegate = { onMessage: async (op, params) => { console.log(op); }, onDisconnect: () => { console.log("exited"); }, onConnect: () => { this.sendConnectInfo(); }, onReConnect: () => { this.sendConnectInfo(); }, }; await client.connect(); process.on("message", (obj) => { console.log("msg"); // process.send("WaitExit"); // setTimeout(() => { // console.log("can exit send"); // process.send("CanExit"); // }, 2000); }); } private sendConnectInfo() { this.client.req(AgentOp.C2S_Connect, { agentId: env.AgentId, hostName: os.hostname(), platform: process.platform, arch: process.arch, }); } }