UNPKG

sdg

Version:

pomelo ts

64 lines 4.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MasterWatcher = void 0; const tslib_1 = require("tslib"); const sdg_admin_1 = require("sdg-admin"); const index_1 = require("../index"); const Constants = tslib_1.__importStar(require("../util/constants")); const monitorWatcher_1 = require("./monitorWatcher"); class MasterWatcher { constructor(opts, consoleService) { this.type = sdg_admin_1.EModuleAction.NORMAL; this.servers = []; this.app = opts.app; this.service = consoleService; this.service.on(sdg_admin_1.ESocketEvent.REGISTER, this.onServerAdd.bind(this)); this.service.on('disconnect', this.onServerLeave.bind(this)); } /** * monitorWatcher拉取在线服务器列表 */ async masterHandler() { return this.app.getServers(); } /** * 新服务器上线 * @param serverInfo */ async onServerAdd(serverInfo) { this.app.logger.warn('masterWatcher receive add server event, with server', serverInfo); if (!serverInfo || serverInfo.moduleType === sdg_admin_1.EModuleType.CLIENT || !serverInfo.type) return; this.app.addServers([serverInfo]); // 通知其他服务器更新servers await this.service.agent.sendMsg2AllServer({ moduleId: monitorWatcher_1.MonitorWatcher.moduleId, body: { type: index_1.EServerAction.ONLINE, serverInfo } }); this.app.logger.warn('all servers', { ids: this.app.getServerIds() }); } /** * 服务器下线 * @param serverInfo */ async onServerLeave(serverInfo) { this.app.logger.warn('masterWatcher receive remove server event, with server', serverInfo); if (!serverInfo || serverInfo.moduleType === sdg_admin_1.EModuleType.CLIENT || !serverInfo.type) return; this.app.removeServers([serverInfo.id]); await this.service.agent.sendMsg2AllServer({ moduleId: monitorWatcher_1.MonitorWatcher.moduleId, body: { type: index_1.EServerAction.OFFLINE, serverInfo } }); this.app.logger.warn('remain servers', { ids: this.app.getServerIds() }); } } exports.MasterWatcher = MasterWatcher; MasterWatcher.moduleId = Constants.KEYWORDS.MASTER_WATCHER; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyV2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL21hc3RlcldhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQVNtQjtBQUVuQixvQ0FBc0Q7QUFDdEQscUVBQStDO0FBQy9DLHFEQUFrRDtBQUVsRCxNQUFhLGFBQWE7SUFReEIsWUFBWSxJQUEwQixFQUFFLGNBQThCO1FBTC9ELFNBQUksR0FBRyx5QkFBYSxDQUFDLE1BQU0sQ0FBQztRQUM1QixZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUtqQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFFOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsd0JBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsYUFBYTtRQUN4QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBd0I7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyx1QkFBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUU1RixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsbUJBQW1CO1FBQ25CLE1BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFxQixDQUFDLGlCQUFpQixDQUFDO1lBQzFELFFBQVEsRUFBRSwrQkFBYyxDQUFDLFFBQVE7WUFDakMsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxxQkFBYSxDQUFDLE1BQU07Z0JBQzFCLFVBQVU7YUFDWDtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBd0I7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyx1QkFBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUM1RixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhDLE1BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFxQixDQUFDLGlCQUFpQixDQUFDO1lBQzFELFFBQVEsRUFBRSwrQkFBYyxDQUFDLFFBQVE7WUFDakMsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxxQkFBYSxDQUFDLE9BQU87Z0JBQzNCLFVBQVU7YUFDWDtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDOztBQTVESCxzQ0E2REM7QUF2RGUsc0JBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyJ9