index.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. Log.info("进入-----检查服务是否启动------"+this.javaServer);
  41. if(this.javaServer == undefined){
  42. Log.info("[addon:javaServer:check] status-----------"+false);
  43. return false;
  44. }
  45. const flag = await this.javaServer.isRun(Conf.getValue('addons.javaServer'));
  46. Log.info("[addon:javaServer:check] status-----------"+flag);
  47. return flag;
  48. }
  49. /**
  50. * 创建服务端口
  51. *
  52. * @function
  53. * @since 1.0.0
  54. */
  55. async createJavaPorts() {
  56. if (!this.cfg.enable) {
  57. return;
  58. }
  59. const javaPort = await GetPort({ port: this.cfg.port });
  60. process.env.EE_JAVA_PORT = javaPort;
  61. this.cfg.port = javaPort;
  62. // 更新config配置
  63. Conf.setValue('addons.javaServer', this.cfg);
  64. }
  65. /**
  66. * 杀掉进程
  67. *
  68. * @function
  69. * @since 1.0.0
  70. */
  71. async kill() {
  72. if (!this.cfg.enable) {
  73. return;
  74. }
  75. await this.javaServer.kill();
  76. }
  77. }
  78. JavaServerAddon.toString = () => '[class JavaServerAddon]';
  79. module.exports = JavaServerAddon;