index.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const getPort = require('get-port');
  2. const server = require("./server");
  3. const electronApp = require('electron').app;
  4. const Log = require('ee-core/module/log');
  5. /**
  6. * java server插件
  7. * @class
  8. */
  9. class JavaServerAddon {
  10. constructor(app) {
  11. this.app = app;
  12. this.cfg = app.config.addons.javaServer;
  13. this.javaServer = null;
  14. }
  15. /**
  16. * 创建java服务
  17. *
  18. * @function
  19. * @since 1.0.0
  20. */
  21. async createServer () {
  22. await this.createJavaPorts();
  23. this.javaServer = new server(this.app);
  24. await this.javaServer.create();
  25. // kill
  26. electronApp.on("before-quit", async () => {
  27. Log.info("[addon:javaServer] before-quit: kill-----------");
  28. await this.javaServer.kill();
  29. });
  30. return;
  31. }
  32. /**
  33. * todo 检查服务是否启动
  34. *
  35. * @function
  36. * @since 1.0.0
  37. */
  38. async check () {
  39. }
  40. /**
  41. * 创建服务端口
  42. *
  43. * @function
  44. * @since 1.0.0
  45. */
  46. async createJavaPorts() {
  47. if (!this.cfg.enable) {
  48. return;
  49. }
  50. const javaPort = await getPort({ port: this.cfg.port });
  51. process.env.EE_JAVA_PORT = javaPort;
  52. this.cfg.port = javaPort;
  53. // 更新config配置
  54. this.app.getCoreDB().setItem("config", this.app.config);
  55. }
  56. /**
  57. * 杀掉进程
  58. *
  59. * @function
  60. * @since 1.0.0
  61. */
  62. async kill() {
  63. if (!this.cfg.enable) {
  64. return;
  65. }
  66. await this.javaServer.kill();
  67. }
  68. }
  69. JavaServerAddon.toString = () => '[class JavaServerAddon]';
  70. module.exports = JavaServerAddon;