Skip to content

简介

IPC 通信通道与事件常量定义。集中管理框架内部使用的通道名和事件名,避免硬编码字符串。以 as const 对象导出——值为只读字符串字面量,可作为类型安全的常量使用。

导入

javascript
// ESM
import { Processes, SocketIO, Events, Receiver } from 'ee-core/const';
// CJS
const { Processes, SocketIO, Events, Receiver } = require('ee-core/const');

也可从顶层入口导入:

javascript
// ESM
import { Processes, SocketIO, Events, Receiver } from 'ee-core';
// CJS
const { Processes, SocketIO, Events, Receiver } = require('ee-core');

API

Processes

说明:进程间通信通道常量。用于主进程和渲染进程的 Electron IPC 消息通信。这些通道名遵循 ee# 前缀约定,以避免与用户自定义通道冲突。

属性说明
showException'ee#showException'异常显示通道;渲染进程收到此通道消息后显示异常对话框
sendToMain'ee#sendToMain'子进程向主进程发送消息的通道

示例

javascript
import { Processes } from 'ee-core';

// 在渲染进程中 — 监听异常显示
ipcRenderer.on(Processes.showException, (_event, err) => {
  dialog.showErrorBox('Error', err.message);
});

// 在子进程中 — 向主进程发送消息
childProcess.send({ channel: Processes.sendToMain, data: payload });

参见socketmessage


SocketIO

说明:SocketIO 通信通道常量。用于 Socket.IO 服务与第三方进程通信(Go/Python 后端等)。partySoftware 值是框架 Socket.IO 配置中的默认通道名。

属性说明
partySoftware'socket-channel'第三方软件通信通道(默认 Socket.IO 通道名)

示例

javascript
import { SocketIO } from 'ee-core';

// SocketIO.partySoftware 作为配置中的默认通道
const config = getConfig();
console.log(config.socketServer.channel); // 'socket-channel' (SocketIO.partySoftware)

参见socketcross


Events

说明:进程生命周期事件常量。用于框架异常处理模块和子进程管理,标识特定进程退出和错误事件。

属性说明
childProcessExit'ee#childProcess#exit'子进程退出事件
childProcessError'ee#childProcess#error'子进程错误事件

示例

javascript
import { Events } from 'ee-core';

// 监听子进程生命周期事件
childProcess.on('exit', (code) => {
  console.log(`Event: ${Events.childProcessExit}, code: ${code}`);
});

childProcess.on('error', (err) => {
  console.log(`Event: ${Events.childProcessError}`, err);
});

参见exceptionjobs


Receiver

说明:消息接收者类型常量。用于 IPC 消息路由,标识消息的目标接收者。决定框架如何分发来自子进程的消息。

属性说明
childJob'job'ChildJob 类型子进程
forkProcess'task'Fork 进程(通用任务)
all'all'所有接收者(广播)

示例

javascript
import { Receiver } from 'ee-core';

// 路由消息到特定接收者类型
const message = {
  channel: 'controller/user/info',
  event: 'request',
  data: payload,
  receiver: Receiver.childJob, // 目标:ChildJob 进程
};

// 广播给所有接收者
const broadcastMsg = {
  ...message,
  receiver: Receiver.all,
};

参见messagejobsjobs-childjob