【问题标题】:Non-blocking ClientRequest.write() for Node.jsNode.js 的非阻塞 ClientRequest.write()
【发布时间】:2012-08-04 04:26:50
【问题描述】:

根据节点httpmodule的ClientRequest.write(chunk,encoding)方法http.js是阻塞的:控制流暂停,直到所有数据(当前数据和所有缓冲数据)都发送完毕。

我想使用多个并行连接同时发送大量数据。是否有任何(直接)方法可以创建方法的非阻塞版本,就像 ClientRequest.write(chunk,encoding,callback) 在“后台”发送数据并在发送完成时触发回调处理程序(或事件)?

提前致谢!

【问题讨论】:

  • 自您发送链接后代码已更改,因此很难在代码中看到您指向的位置。也就是说,我的理解是它不是在网络级别阻塞,只是在 JavaScript 中阻塞的程度。因此,即使使用“阻塞”调用,您也可以有多个并行连接,并且每个连接都可以同时通过线路发送数据。

标签: node.js nonblocking


【解决方案1】:

使用 Node 的 Stream.pipe() 将数据流式传输到多个其他流中。 例如:

var w1 = fs.createWriteStream('input-1');
var w2 = fs.createWriteStream('input-2');
request.pipe(w1);
request.pipe(w2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 2012-05-11
    • 2013-08-22
    • 2012-07-07
    相关资源
    最近更新 更多