2014-06-28 26 views
3

我正在将一个现有的程序移植到nodejs。在这个程序中,我打开一个文件描述符,然后将它传递给一个线程,该线程调用poll以确定它何时可读。如何在给定文件描述符的情况下打开nodejs Duplex流?

而不是编写一个自定义的C++模块,我真的很喜欢用纯JavaScript做这个,利用Node的方便Dandy 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

'var stream = new net.Socket({fd:fd})' – vkurchatkin

+0

fd不适用于套接字吗? –

+0

应该适用于插座和管道 – vkurchatkin

回答

0

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

相关问题