如何在给定文件描述符的情况下打开nodejs Duplex流?

时间:2014-06-28 07:36:31

标签: javascript node.js polling libuv

我将现有程序移植到nodejs。在这个程序中,我打开一个文件描述符,然后将其交给一个调用poll的线程,以确定它何时可读。

我不想编写自定义C ++模块,而是真的想在纯JavaScript中使用Node方便的花花公子Duplex stream

例如,我想做这样的事情:

var device = new PollDuplexStream(fileDescriptor);

device.on('data', function(data) {
    // data handling logic here
});

...

var chunk = new Buffer(...);
device.write(chunk);

似乎这应该存在,但我没有看到它的作用。也许我只是瞎了?从上面的示例中,PollDuplexStream的真实世界等同于什么?

请注意,我明确地寻找以文件描述符而不是路径开头的解决方案,否则我只是从fs.createReadStreamfs.createWriteStream创建自己的解决方案。

另外,我并不在乎它在内部调用poll - 事实上,我更喜欢它在内部使用libuv uv_poll_*

1 个答案:

答案 0 :(得分:0)

您需要创建一个使用uv_poll_t句柄的二进制插件,该句柄能够轮询任意文件描述符的可读性/可写性。