UNPKG

sdg-admin

Version:

pomelo sdg admin plugin

75 lines 6.33 kB
"use strict"; /** * 要求使用一个用户名和口令主动发起到master的连接及注册, * 验证通过后,AdminClient会维护到master的连接,然后就可以向master发送request/notify了 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.AdminClient = void 0; const tslib_1 = require("tslib"); const socket_io_client_1 = tslib_1.__importDefault(require("socket.io-client")); const __1 = require(".."); class AdminClient { constructor(opts) { this.status = __1.EStatus.INIT; this.host = opts.host; this.port = opts.port; this.username = opts.username; this.password = opts.password; this.timeout = opts.timeout || 5000; this.path = opts.path || ''; } start() { console.log('[AdminClient] start'); this.connect(); } connect() { const uri = this.port ? `${this.host}:${this.port}` : this.host; const config = { path: '', transports: ['websocket', 'polling'] }; if (this.path) { config.path = `/${this.path}/socket.io`; } this.socket = socket_io_client_1.default(uri, config); this.socket.on('connect', () => { console.log(`[AdminClient] connect to server: ${uri}`); if (this.status === __1.EStatus.CONNECTED || this.status === __1.EStatus.REGISTERED) return; this.status = __1.EStatus.CONNECTED; this.register(); }); 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'); }); } async request(moduleId, body) { return this.doSend({ moduleId, body }); } register() { this.socket.emit(__1.ESocketEvent.REGISTER, { moduleType: __1.EModuleType.CLIENT, username: this.username, password: this.password }, (err) => { if (err) return console.error('AUTH FAILED'); this.status = __1.EStatus.REGISTERED; }); } doSend(msg) { 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.CLIENT, msg, (err, res) => { clearTimeout(to); err ? reject(err) : resolve(res); }); }); } } exports.AdminClient = AdminClient; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW5DbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2FkbWluQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7QUFFSCxnRkFBK0M7QUFFL0MsMEJBQWtHO0FBRWxHLE1BQWEsV0FBVztJQVV0QixZQUFZLElBQXFCO1FBSDFCLFdBQU0sR0FBWSxXQUFPLENBQUMsSUFBSSxDQUFDO1FBSXBDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxPQUFPO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRztZQUNiLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztTQUNyQyxDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2Is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