从childprocess标准输出中连续读取json
我想在nodejs中从java子进程读取和发送从childprocess标准输出中连续读取json,json,node.js,stream,ipc,Json,Node.js,Stream,Ipc,我想在nodejs中从java子进程读取和发送json消息。这个过程将持续一段时间。通过stdio发送和接收的消息表示两个进程之间的事件。因此,消息必须在完成后立即进行处理 输出将以 {"type":"eventType","data":...} {"type":"anotherEventType","data":...} ... {"type":"anotherEventType","data":...} 写信息没有问题,但阅读是。特别是因为我不能依赖于\n上的消息拆分,也不能依赖于一个块正
json
消息。这个过程将持续一段时间。通过stdio
发送和接收的消息表示两个进程之间的事件。因此,消息必须在完成后立即进行处理
输出将以
{"type":"eventType","data":...}
{"type":"anotherEventType","data":...}
...
{"type":"anotherEventType","data":...}
写信息没有问题,但阅读是。特别是因为我不能依赖于\n
上的消息拆分,也不能依赖于一个块正好包含一条消息
不幸的是,我能找到的每个示例都会缓冲stdout
的输出,直到进程终止,然后才解析它。我能找到的所有IPC节点模块都使用我想要避免的套接字
是否有提供此类功能的现有库,或者我必须扮演自己的角色?正是我想要的
child.stdout
.pipe(require('JSONStream').parse())
.on('data', processMessage);
这两个过程是否都在节点中实现?如果是这样的话,通过Node的IPC通道发送JSON消息是非常容易的(如果这确实是您的情况,我可以在回答中详细说明)。编辑问题