index.js 1.5 KB

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