UNPKG

@cliz/inlets

Version:
36 lines (35 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMonitor = void 0; const http = require("http"); const doreamon_1 = require("@zodash/doreamon"); const ws_1 = require("./ws"); const tcp_1 = require("./tcp"); function createMonitor(ctx, options) { const logger = doreamon_1.default.logger.getLogger('monitor'); const server = http.createServer(); const ws = (0, ws_1.createWebSocketMonitor)(ctx, options); const tcp = (0, tcp_1.createTCPMonitor)(ctx, { ...options, port: options.tcpPort, }); const tunnel = (callback) => { ws.emitter.on('tunnel', (data) => { callback(data); }); }; ws.ws.attach(server); server.listen(options.port, '0.0.0.0', () => { logger.info(`Version: ${options.version}`); logger.info(`Monitor: http://127.0.0.1:${options.port}`); logger.info(`Monitor(tcp): tcp://127.0.0.1:${options.tcpPort}`); logger.info(`Domain: ${options.domain}`); }); return { ws, tcp, server, tunnel, }; } exports.createMonitor = createMonitor;