UNPKG

sdg-admin

Version:

pomelo sdg admin plugin

84 lines 7.25 kB
"use strict"; /** * MonitorAgent会主动发起连接到master,并维护对应的连接,然后通过此连接与master端通信 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.MonitorAgent = void 0; const tslib_1 = require("tslib"); const events_1 = require("events"); const socket_io_client_1 = tslib_1.__importDefault(require("socket.io-client")); const __1 = require(".."); const constants_1 = require("../util/constants"); class MonitorAgent extends events_1.EventEmitter { constructor(consoleService, opts) { super(); this.consoleService = consoleService; this.status = __1.EStatus.INIT; this.id = opts.serverInfo.id; this.type = opts.serverInfo.type; this.host = opts.host; this.port = opts.port; this.serverInfo = opts.serverInfo; this.timeout = opts.timeout || constants_1.DEFAULT_PARAM.TIMEOUT; } start() { console.log('monitor start'); this.connect(); } connect() { const uri = `${this.host}:${this.port}`; this.socket = socket_io_client_1.default(uri); this.socket.on('connect', () => { console.log('[MonitorAgent] connect to server'); if (this.status === __1.EStatus.CONNECTED || this.status === __1.EStatus.REGISTERED) return; this.status = __1.EStatus.CONNECTED; this.register().then(); }); this.socket.on('error', (err) => { if (this.status > __1.EStatus.CONNECTED) { this.emit('error', err); } }); this.socket.on('disconnect', (reason) => { this.status = __1.EStatus.CLOSED; this.emit('close'); }); // 来自master的监控请求 this.socket.on(__1.ESocketEvent.MONITOR, async (msg, cb) => { try { const res = await this.consoleService.execute(msg.moduleId, 'monitorHandler', msg.body); cb && cb(null, res); } catch (e) { cb && cb(e); } }); } /** * 注册,鉴权 */ async register() { let req = Object.assign(Object.assign({}, this.serverInfo), { moduleType: __1.EModuleType.MONITOR, token: await this.consoleService.authServer(this.type) }); this.socket.emit(__1.ESocketEvent.REGISTER, req, err => { if (err) return console.error('AUTH ERROR'); this.status = __1.EStatus.REGISTERED; this.emit(__1.ESocketEvent.REGISTER, this.serverInfo); }); } doSend(msg) { msg.serverId = this.id; if (this.status !== __1.EStatus.REGISTERED) return console.error('has not registered'); return new Promise((resolve, reject) => { const to = setTimeout(() => reject(`request time out for ${this.timeout}`), this.timeout); this.socket.emit(__1.ESocketEvent.MONITOR, msg, (err, res) => { clearTimeout(to); err ? reject(err) : resolve(res); }); }); } } exports.MonitorAgent = MonitorAgent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvckFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vbml0b3IvbW9uaXRvckFnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7OztBQUVILG1DQUFzQztBQUN0QyxnRkFBK0M7QUFFL0MsMEJBQW9HO0FBQ3BHLGlEQUFrRDtBQUdsRCxNQUFhLFlBQWEsU0FBUSxxQkFBWTtJQVU1QyxZQUFtQixjQUE4QixFQUFFLElBQXVCO1FBQ3hFLEtBQUssRUFBRSxDQUFDO1FBRFMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRjFDLFdBQU0sR0FBWSxXQUFPLENBQUMsSUFBSSxDQUFDO1FBSXBDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUkseUJBQWEsQ0FBQyxPQUFPLENBQUM7SUFDdkQsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTztRQUNaLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRywwQkFBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxN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