如何在node.js中创建命名管道?

如何在node.js中创建命名管道?

PS:目前,我正在按如下方式创建命名管道。但是我认为这不是最好的方法

var mkfifoProcess = spawn('mkfifo',  [fifoFilePath]);

mkfifoProcess.on('exit', function (code) {

if (code == 0) {

console.log('fifo created: ' + fifoFilePath);

} else {

console.log('fail to create fifo with code: ' + code);

}

});

回答:

看起来,Node核心不支持名称管道-从Ben Noordhuis 11/10/11开始:

Windows具有命名管道的概念,但是自您提到以来,mkfifo我假设您的意思是UNIX FIFO。

我们不支持它们,可能永远也不会(在非阻塞模式下的FIFO可能会死锁事件循环),但是如果您需要类似的功能,则可以使用UNIX套接字。

https://groups.google.com/d/msg/nodejs/9TvDwCWaB5c/udQPigFvmgAJ

命名管道和套接字非常相似,但是,该net模块通过指定a path(而不是host和)来实现本地套接字port

  • http://nodejs.org/api/net.html#net_server_listen_path_callback
  • http://nodejs.org/api/net.html#net_net_connect_path_connectlistener

例:

var net = require('net');

var server = net.createServer(function(stream) {

stream.on('data', function(c) {

console.log('data:', c.toString());

});

stream.on('end', function() {

server.close();

});

});

server.listen('/tmp/test.sock');

var stream = net.connect('/tmp/test.sock');

stream.write('hello');

stream.end();

以上是 如何在node.js中创建命名管道? 的全部内容, 来源链接: utcz.com/qa/424116.html

回到顶部