Articles of ipc

Python 进程将消息发送给Node 进程

Python进程派生的NodeJS – 替代process.send()的Python? 我遵循上面的解决scheme,但似乎没有工作(没有消息正在发送的孩子python代码。这是我的代码: const spawn = require('child_process').spawn; var child = spawn('python3', ['child.py'], { stdio:[null, null, null, 'pipe'] }); child.on('message', function(message) { console.log('Received message…'); console.log(message); }); 和 # !/usr/bin/python3 import os os.write(3, str.encode("HELLO")) 我可以看到有什么可能出错。 请帮忙。

未捕获的exception:试图在已经closures或释放的渲染器窗口中调用一个函数

我是新来的桌面应用程序开发,并使用电子node.js和JavaScript来构build我的应用程序。 这里是我想要实现的一个简短的描述: FirstWindow.html 具有与每个与事件监听器双击相关联的列表项目的产品列表。 双击任何元素。 SecondWindow.html 应该被创build,它具有从数据库(postgesql)中提取的点击产品的信息。 但是在打开应用程序时出现以下错误: 未捕获exception:试图在已closures或释放的渲染器窗口中调用函数 这里是我的代码片段,我试图实现ipcMain和ipcRenderer模块: main.js const electron = require('electron'); ipcMain.on('item_catch_in_main', function(e, productname){ SecondWindow.webContents.send('item_action_to_be_done', productname); }); FirstWindow.html <script> const { ipcRenderer } = require('electron'); ipcRenderer.send('item_catch_in_main', productname); </script> SecondWindow.html <script> const { ipcRenderer } = require('electron'); ipcRenderer.on('item_action_to_be_done', (event, item) => { console.log(item); }); </script> 请让我知道是否有人在Elecrton解决了类似的问题。 提前致谢!

生产者/消费者+工作者与Node.js / python拱

我们有2个组件1生产者/消费者,2过程 生产者/消费者是I / O激励,并且只需要networking请求,并根据input参数input到mongodb。 进程是从mongodb和group(make pair)处理数据的独立进程(在python中)。 这种配对可以花费很less的时间,一旦配对完成,我们要通知节点,为了给定的连接,“处理完成”,所以节点可以发送数据回客户端。 我不知道“如何通知节点的连接,过程完成,这是输出。”

监听主进程上的HTTP通信,处理subprocess上的连接?

我正在寻找一种方法来让套接字监听主进程上的HTTP请求,然后使用process.send()将所有传入连接和请求数据传递给subprocess,并在subprocess中处理HTTP请求。 但是,我无法find一种方法来将传递的连接和请求数据附加到subprocess中的HTTP服务器,而无需通过.listen()套接字初始化服务器。 那么,是否有可能使用HTTP服务器来处理从另一个进程传入的连接呢? 任何非公开的API解决scheme也将做(尽pipeJavaScript的希望尽pipe)。 我想我可以初始化服务器来侦听一些虚拟套接字,然后popup传入的连接,但这似乎并不理想。 传入监听套接字或使用群集或反向代理也不是最佳的在我的情况。

Bidrectional节点/ python通信

我正试图在节点和派生的Python进程之间实现简单的双向通信。 python: import sys for l in sys.stdin: print "got: %s" % l 节点: var spawn = require('child_process').spawn; var child = spawn('python', ['-u', 'ipc.py']); child.stdout.on('data', function(data){console.log("stdout: " + data)}); var i = 0; setInterval(function(){ console.log(i); child.stdin.write("i = " + i++ + "\n"); }, 1000); 在Python上使用-u强制unbuffered I / O,所以我期望看到输出(我也尝试了sys.stdout.flush() ),但没有。 我知道我可以使用child.stdout.end()但是这阻止了我以后写数据。

不断从subprocessstdout读取json

我想阅读和jjj消息发送到一个Javasubprocessnodejs和。 孩子的过程会活一段时间。 通过stdio发送和接收的消息表示来自两个进程的事件。 因此,消息必须在完成后立即处理。 输出将在表格中 {"type":"eventType","data":…} {"type":"anotherEventType","data":…} … {"type":"anotherEventType","data":…} 写信息是没有问题的,但阅读是。 特别是因为我不能依赖\n分裂的消息,也不能说一个块只包含一个消息。 不幸的是,我能find的每个例子都会cachingstdout的输出,直到进程终止并且只parsing它。 而我可以find的所有IPC节点模块都使用我想避免的套接字。 是否有现有的库提供这样的function,或者我必须自己的angular色?

Electron + angularjs IPC机制

我正在尝试在Electron中使用AngularJs。 我感到困惑的是, 这里的电子文档build议使用类似于: // In renderer process (web page). const ipcRenderer = require('electron').ipcRenderer; console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong" ipcRenderer.on('asynchronous-reply', function(event, arg) { console.log(arg); // prints "pong" }); ipcRenderer.send('asynchronous-message', 'ping'); 但是由于Angular在浏览器(webkit)中运行,我不能使用require来获取ipcRenderer。 如何克服这个问题。

在node.js中获取所有嵌套的subprocess的标准输出

我创build了一个节点脚本来启动subprocess,并且我已经成功地将其stdoutredirect到控制台。 但是,如果subprocess创build一个嵌套的subprocess,那么我无法得到它的标准输出或标准input。 我有一个模糊的想法,我必须创buildstream,并将其pipe道父进程,但我不知道现在。 有人可以请一个方法来实现它。 下面是我现在启动subprocess的代码 spawn = require('child_process').spawn; ls = spawn "ruby" , [ @editor.getPath() ] ls.stdout.on 'data', (data) -> console.log data.toString() ls.stderr.on 'data', (data) -> console.log data.toString()

将subprocess的输出保存在NodeJS的父进程的variables中

我想在NodeJS中启动一个subprocess并将其输出保存到一个variables中。 以下代码将其提供给stdout: require("child_process").execSync("echo Hello World", {"stdio": "inherit"}); 我有一个类似于这个代码的东西: var test; require("child_process").execSync("echo Hello World", {"stdio": "test"}); console.log(test); test的价值应该是Hello World 。 哪个不行,因为"test"不是有效的stdio值。 也许这是可能的使用环境variables,但是我没有find如何修改它们在subprocess中的结果仍然是可见的父。

从Electronsubprocess访问DOM树

我在Windows 10上使用Electron(v1.2.2),我的一个项目有一个很大的问题: 我有一个脚本,进入渲染过程,并创buildsubprocess运行一些特殊的代码。 我需要运行在subprocess内的代码来访问DOM。 当创build进程(使用child_process.fork())时,我使用内置IPC通道发送一些信息,例如时间戳,有关将在subprocess内部运行的脚本的一些信息。 但是当我尝试发送一个类的实例时,它根本不起作用: //main.js const child_process = require('child_process'); const child = child_process.fork('child.js'); child.send({ready: { version: '0.0.1', dom: document }}); // child.js process.on('message', (m) => { typeof m.dom.body.appendChild; // ReferenceError }); 我想这是IPC通信的限制,只能传输一些特定的数据,但我知道可以使用IPC通道发送服务器或套接字实例,所以我不明白为什么传输文档是不可能的。 所以我正在寻找一种方法来访问subprocess的DOM,但我没有find任何解决scheme。 subprocess内部的代码需要在DOM上做很多操作,不能用IPC通信来访问,否则性能会太慢。 所以,我的问题是:有什么办法从subprocess访问DOM?