我希望通过IPC在Node.js和Java子进程之间进行通信。我正在寻找不需要打开端口的建议。
const { spawn } = require('child_process')
// Java App is within args
const args = []
const javaProcess = spawn('java', args, { cwd: __dirname })
javaProcess.on('message', (m) => {
console.log('PARENT got message:', m)
})
// Sends { 'hello': 'world' } to the Java process
javaProcess.send({ hello: 'world' })我知道节点层可以向子进程发送消息,我只是不知道如何侦听Java层中的消息并将消息发回。
任何帮助都是非常感谢的,谢谢!
发布于 2019-09-13 14:29:11
我用命名管道解决了这个问题..。
在Node上,我使用了Net support
在Java上,我使用了RandomAccessFile https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html
发布于 2022-06-09 13:28:33
最后,我用Erwin Bolwidt's Comment的灵感解决了这个问题。
const { spawn } = require('child_process')
// Java App is within args
const args = []
const javaProcess = spawn('java', args, { cwd: __dirname })
javaProcess.stdout.on('data', (m) => {
console.log('PARENT got message:', m)
})
// Sends message to the Java process
javaProcess.stdin.write('Hello there java!');java进程可以在System.in上等待带有System.in的消息,然后将输出打印到System.out。
总之,您只是重新路由进程的stdin/stdout。process.html#subprocessstdout
https://stackoverflow.com/questions/57873141
复制相似问题