javascript - 在子进程和父进程之间共享 ipc 对象

标签 javascript node.js electron

我有一个 Electron 应用程序,我在其中 fork 一个子进程来执行一些后台作业,而不会干扰主进程。

var onlineSyncChild = require('child_process').fork('./includes/server/onlineSync');

我想将 ipcMain 对象发送到子进程,以便它可以监听应用程序消息并做出相应响应。 这是我所拥有的

const electron = require('electron');
const app = electron.app;
const ipcMain = electron.ipcMain;

...

var onlineSyncChild = require('child_process').fork('./includes/server/onlineSync');
onlineSyncChild.on('message', function (m) {
  console.log('onlineSync says: ', m);
});
// send the ipcMain object into child
onlineSyncChild.send({type: 'set', ipc: ipcMain, db: DB});

但是当我尝试在子进程中使用它时,

this.ipc.on('query-online-status', this.ipcQueryOnlineStatus);

我收到一条错误消息,指出 this.ipc.on 不是函数。

我是否正确地假设这是不可能的,并且我所能做的只是在子进程和父进程之间发送常规对象?

最佳答案

您传递给 onlineSyncChild.send() 的消息在发送到子进程之前将被序列化为 JSON 字符串,因此 message 中的任何函数都将被省略。您可以在 JSON.stringify() 的文档中阅读有关序列化过程中省略的内容的更多信息。 .

关于javascript - 在子进程和父进程之间共享 ipc 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37469187/

相关文章:

javascript - Fancybox 在页面加载时打开

javascript - 用于智能手机/平板电脑浏览器的 Web 应用程序中的条形码扫描

javascript - Angularjs - $http 成功与那时

java - Nodejs 使用的资源比 Play 框架少吗?

electron - (un)最大化时的远程功能错误

javascript - 仅对表格内容进行 javascript html 排序

node.js - 如何在 Node Js 中使用 Mongodb Bulk 和多文档事务?

angular - typescript 编译器 : Cannot find name 'Map'

windows - 如何避免 Windows 签名 Electron 应用程序出现警告?

javascript - 从数组中的元素修改空白元素