| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- const getPort = require('get-port');
- const server = require("./server");
- const electronApp = require('electron').app;
- /**
- * java server插件
- * @class
- */
- class JavaServerAddon {
- constructor(app) {
- this.app = app;
- this.cfg = app.config.addons.javaServer;
- this.javaServer = null;
- }
- /**
- * 创建java服务
- *
- * @function
- * @since 1.0.0
- */
- async createServer () {
- await this.createJavaPorts();
- this.javaServer = new server(this.app);
- await this.javaServer.create();
- // kill
- electronApp.on("before-quit", async () => {
- this.app.logger.info("[addon:javaServer] before-quit: kill-----------");
- await this.javaServer.kill();
- });
- return;
- }
- /**
- * todo 检查服务是否启动
- *
- * @function
- * @since 1.0.0
- */
- async check () {
-
- }
- /**
- * 创建服务端口
- *
- * @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配置
- this.app.getCoreDB().setItem("config", this.app.config);
- }
- /**
- * 杀掉进程
- *
- * @function
- * @since 1.0.0
- */
- async kill() {
- if (!this.cfg.enable) {
- return;
- }
- await this.javaServer.kill();
- }
- }
- JavaServerAddon.toString = () => '[class JavaServerAddon]';
- module.exports = JavaServerAddon;
|