当前位置: 首页 > 面试题库 >

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

阎京
2023-03-14
问题内容

如何在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();


 类似资料:
  • 问题内容: 如何在Python中创建临时FIFO(命名管道)?这应该工作: 但是,我很犹豫,因为Python Docs 11.6 中有个大警告,并且由于不推荐使用而可能被删除。 编辑 :值得注意的是,我已经尝试过(并通过扩展名),但是抛出: OSError -17:文件已存在 当您在mkstemp / NamedTemporaryFile创建的文件上运行它时。 问题答案: 如果文件已经存在,将失败

  • 问题内容: 有什么方法可以创建线程以一次运行多个方法吗? 这样,如果任何方法在所有其他线程之间失败,则应终止。 问题答案: 每个node.js进程在设计上都是单线程的。因此,要获得多个线程,您必须具有多个进程(正如其他一些发帖人所指出的那样,您还可以链接到一些库,这些库使您能够使用Node中的线程,但是没有这些库就没有这种能力。请参阅Shawn Vincent的回答,参考https://githu

  • 问题内容: PostgreSQL窗口函数的文档似乎暗示您可以在查询的多个位置使用相同的命名窗口。但是,我不知道如何创建命名窗口? 这是一个开玩笑的查询,我试图获取语法,但出现错误: 错误:窗口“ w”不存在 问题答案: 答案实际上在文档中: 条款 可选子句具有一般形式 这是一个例子

  • 问题内容: 我正在尝试从正在传递的文件内容中创建一个zip文件,例如 这样可以正确写入zip,但是当您打开zip时,其中的文件称为“-”。有什么方法可以指定在zip中应该包含管道输入数据的文件名吗? 问题答案: 从我可以收集到的信息来看,您不能同时使用该命令,这意味着您既不能指定文件名也不能通过管道传递内容。您可以通过管道传输内容,结果文件为,也可以通过管道传输文件名。 这并不意味着使用其他技术是

  • 问题内容: 假设我有一个图像要标记为(在我的情况下,这是一个包含Node.js 0.10.24的图像)。我使用Dockerfile构建了该映像,然后执行并通过使用参数提供了标记。 我希望有一天我将拥有该图像的其他版本,因此我将使用另一个标签名称重新运行该过程。 到目前为止,一切都很好。这很好而且很好,一切都很好。 但是,这是问题开始的地方,我还希望始终另外拥有最新的图像标记广告。所以我想我需要给同

  • 问题内容: 给定一个SSL密钥和证书,如何创建HTTPS服务? 问题答案: 我发现以下示例。 这适用于节点v0.1.94-v0.3.1。在新版本的节点中被删除。 直接从该来源: