我有一个 node.js 进程,它需要从不同的其他进程提供的多个命名管道中读取作为 IPC 方法。
在打开并创建来自四个以上 fifos 的读取流后,我意识到 fs 似乎不再能够打开 fifos 并且只是挂在那里。
考虑到可以同时打开数千个文件而不会出现问题(例如在以下脚本中替换mkfifo为touch),这个数字似乎有点低。
我在 MacOS 10.13 上使用 node.js v10.1.0 和在 Ubuntu 16.04 上使用 node.js v8.9.3 进行了测试,结果相同。
错误的脚本
以及显示此行为的脚本:
var fs = require("fs");
var net = require("net");
var child_process = require('child_process');
var uuid = function() {
for (var i = 0, str = ""; i < 32; i++) {
var number = Math.floor(Math.random() * 16);
str += number.toString(16);
}
return str;
}
function setupNamedPipe(cb) {
var id …Run Code Online (Sandbox Code Playgroud)