如何在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