sdg
Version:
pomelo ts
64 lines • 4.98 kB
JavaScript
"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