| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- "use strict";
- const { Controller } = require("ee-core");
- const Cross = require("ee-core/cross");
- const Log = require("ee-core/log");
- const HttpClient = require("ee-core/httpclient");
- const Services = require("ee-core/services");
- /**
- * Cross
- * @class
- */
- class CrossController extends Controller {
- constructor(ctx) {
- super(ctx);
- }
- /**
- * View process service information
- */
- info() {
- const pids = Cross.getPids();
- Log.info("cross pids:", pids);
- let num = 1;
- pids.forEach((pid) => {
- let entity = Cross.getProc(pid);
- Log.info(`server-${num} name:${entity.name}`);
- Log.info(`server-${num} config:`, entity.config);
- num++;
- });
- return "hello electron-egg";
- }
- /**
- * Get service url
- */
- async getUrl(args) {
- const { name } = args;
- const serverUrl = Cross.getUrl(name);
- return serverUrl;
- }
- /**
- * kill service
- * By default (modifiable), killing the process will exit the electron application.
- */
- async killServer(args) {
- const { type, name } = args;
- if (type == "all") {
- Cross.killAll();
- } else {
- Cross.killByName(name);
- }
- return;
- }
- /**
- * create service
- */
- async createServer(args) {
- const { program } = args;
- if (program == "go") {
- Services.get("cross").createGoServer();
- } else if (program == "java") {
- Services.get("cross").createJavaServer();
- } else if (program == "python") {
- Services.get("cross").createPythonServer();
- }
- return;
- }
- /**
- * Access the api for the cross service
- */
- async requestApi(args) {
- const { name, urlPath, params } = args;
- const hc = new HttpClient();
- const serverUrl = Cross.getUrl(name);
- console.log("Server Url:", serverUrl);
- const apiHello = serverUrl + urlPath;
- const options = {
- method: "GET",
- data: params || {},
- dataType: "json",
- timeout: 1000,
- };
- const result = await hc.request(apiHello, options);
- return result.data;
- }
- }
- CrossController.toString = () => "[class CrossController]";
- module.exports = CrossController;
|