2014-06-28 114 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句柄,該句柄能夠輪詢任意文件描述符的可讀性/可寫性。

相關問題