【发布时间】:2014-06-28 07:36:31
【问题描述】:
我正在将现有程序移植到 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.createReadStream 和 fs.createWriteStream 创建自己的解决方案。
我也不在乎它在内部调用 poll - 事实上,我更喜欢它在内部使用 libuv 的 uv_poll_*。
【问题讨论】:
-
var stream = new net.Socket({ fd : fd }) -
fd 不是用于套接字有关系吗?
-
应该适用于套接字和管道
-
是的,但我的 fd 两者都不是。这是一个字符设备。
-
然后试试
tty.ReadStream和tty.WriteStream。相关讨论:github.com/joyent/node/issues/7101
标签: javascript node.js polling libuv