const server = require("./server"); const { app: electronApp } = require('electron'); const Log = require('ee-core/log'); const Conf = require('ee-core/config'); const GetPort = require('ee-core/utils/get-port'); /** * java server插件 * @class */ class JavaServerAddon { constructor() { this.cfg; this.javaServer; } /** * 创建java服务 * * @function * @since 1.0.0 */ async createServer () { this.cfg = Conf.getValue('addons.javaServer'); await this.createJavaPorts(); this.javaServer = new server(); await this.javaServer.create(this.cfg); // kill electronApp.on("before-quit", async () => { Log.info("[addon:javaServer] before-quit: kill-----------"); await this.javaServer.kill(); }); return; } /** * todo 检查服务是否启动 * * @function * @since 1.0.0 */ async check () { Log.info("进入-----检查服务是否启动------"+this.javaServer); if(this.javaServer == undefined){ Log.info("[addon:javaServer:check] status-----------"+false); return false; } const flag = await this.javaServer.isRun(Conf.getValue('addons.javaServer')); Log.info("[addon:javaServer:check] status-----------"+flag); return flag; } /** * 创建服务端口 * * @function * @since 1.0.0 */ async createJavaPorts() { if (!this.cfg.enable) { return; } const javaPort = await GetPort({ port: this.cfg.port }); process.env.EE_JAVA_PORT = javaPort; this.cfg.port = javaPort; // 更新config配置 Conf.setValue('addons.javaServer', this.cfg); } /** * 杀掉进程 * * @function * @since 1.0.0 */ async kill() { if (!this.cfg.enable) { return; } await this.javaServer.kill(); } } JavaServerAddon.toString = () => '[class JavaServerAddon]'; module.exports = JavaServerAddon;