从childprocess stdout连续读取json

时间:2015-12-09 12:34:32

标签: json node.js stream ipc

我想读取nodejs中的cordova serve 消息并将其发送到java子进程。子进程将存在一段时间。通过json发送和接收的消息代表来自和来自两个进程的事件。因此,消息必须在完成后立即处理。

输出将采用

形式
stdio

编写消息没有问题,但阅读是。特别是因为我不能依赖{"type":"eventType","data":...} {"type":"anotherEventType","data":...} ... {"type":"anotherEventType","data":...} 上的消息拆分,也不能只依赖一个消息。

不幸的是,我找到的每个示例都会缓存\n的输出,直到进程终止并且仅解析它。我能找到的所有IPC节点模块都使用了我想避免使用的套接字。

是否存在提供此类功能的现有库,或者我必须自己角色?

1 个答案:

答案 0 :(得分:2)

JSONStream完全符合我的要求。

child.stdout
    .pipe(require('JSONStream').parse())
    .on('data', processMessage);