Node.js 和 Java 之间的 IPC 通信

Posted

技术标签:

【中文标题】Node.js 和 Java 之间的 IPC 通信【英文标题】:IPC Communication between Node.js and Java 【发布时间】:2019-09-10 14:37:12 【问题描述】:

我希望通过 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' )

我知道 Node 层可以向子进程发送消息,但我只是不知道如何在 Java 层中侦听消息并发送回消息。

非常感谢任何帮助,谢谢!

【问题讨论】:

尝试监听 System.in 并响应 System.out *nix 上的 unix 域套接字或 Windows 上的命名管道 我最终使用命名管道解决了这个问题,感谢陈恒奇! 【参考方案1】:

我通过使用命名管道解决了这个问题...

在节点上我使用了 Net API https://nodejs.org/api/net.html#net_ipc_support

在 Java 上,我使用了 RandomAccessFile https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html

【讨论】:

以上是关于Node.js 和 Java 之间的 IPC 通信的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 应用程序和基于 C# 的插件之间建立 IPC 链接

node.js 和 PHP 之间如何通信?

Electron 渲染进程主进程通信 01

Rhino -> Node.js 通信

node.js中net模块node实现tcp通信

node.js中net模块node实现tcp通信