nodejs父子线程数据流的通信

在nodejs中如果需要传输大量的、二进制的数据流,还是采用pipe管道形式较为合适。

1、parent.js

const {spawn} = require("child_process");
let cp = spawn("node", ['./child.js'], {stdio : [process.stdin, process.stdout, process.stderr, 'pipe']});  //设定索引3的通道类型为'pipe'
cp.stdio[3].on("data", (data)=>{
//子进程传递过来的数据
console.log(data);  
});
cp.stdio[3].write(new Uint8Array([1,2,3])); //向子进程发送二进制数据

2、child.js

const fs = require("fs");
const ws = fs.createWriteStream(null, {fd : 3}); //写句柄,fd号为3
const rs = fs.createReadStream(null, {fd : 3}); //读句柄,fd号为3
rs.on("data", (data)=>{
//父进程传递过来的数据
console.log(data);
});
rw.write(new Uint8Array([4,5,6]));//向父进程发送二进制数据
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,560评论 0 6
  • 本文主要源自https://github.com/jimuyouyou/node-interview-questi...
    AIM外星人阅读 7,267评论 0 9
  • 深入浅出Nodejs 模块机制 Commonjs规范 node的模块实现步骤:路径分析文件定位编译执行核心模块在n...
    lmmy123阅读 3,269评论 0 1
  • 先保存起来免得地址失效https://nqdeng.github.io/7-days-nodejs/#6[http...
    Iterate阅读 5,072评论 0 10
  • Node基本 node的最大特性莫过于基于事件驱动的非阻塞I/O模型。 node通过事件驱动的方式处理请求,无须为...
    AkaTBS阅读 6,662评论 0 11

友情链接更多精彩内容