2012-04-16 109 views
1

根据http.js节点的http模块的ClientRequest.write(chunk,encoding)方法阻塞:控制流暂停,直到发送所有数据(当前的一个和所有缓冲的数据)。Node.js的非阻塞ClientRequest.write()

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

在此先感谢!

+0

自您发送链接后代码已更改,因此很难看到您在代码中指向的位置。也就是说,我的理解是,它不是在网络层面阻塞,只是阻塞在JavaScript中。所以,即使是这种“阻塞”呼叫,您也可以有多个并行连接,并且每个并行连接都可以通过线路发送数据。 – 2012-04-24 20:13:03

回答

1

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

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