index.js 1.5 KB

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