javascript - 给定文件描述符,如何打开 nodejs 双工流?

标签 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_*

最佳答案

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

关于javascript - 给定文件描述符,如何打开 nodejs 双工流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464709/

相关文章:

python - 在 python 中轮询 api 以获取特定的 json 元素

javascript - 使用 setInterval() 进行简单的连续轮询

php - 在我的另一个网站上显示特定的 Div

javascript - Rails xhr.send( ( options.hasContent && options.data ) || null );错误

javascript - 是否可以在函数内导出模块?

javascript - 在 JS 的字符串中按字符类反转字符串

node.js - Azure Functions - NodeJS - 响应正文作为流

javascript - 在导入的函数之间使用作用域变量的最佳实践

javascript - 如果路径不存在,Angular 2 如何重定向到 404 或其他路径

php - Ajax/PHP - 我应该使用一个长时间运行的脚本还是轮询?