2012-04-16 9 views
1

http.jsによると、ノードのhttpモジュールのClientRequest.write(chunk,encoding)メソッドがブロックしています。すべてのデータ(現在のものとすべてのバッファーにされたデータ)が送信されるまで、制御フローは一時停止されます。Node.jsのノンブロッキングClientRequest.write()

複数の並列接続を使用して同時に大量のデータを送信したいとします。 ClientRequest.write(chunk,encoding,callback)のように、データが「バックグラウンドで」送信され、送信が完了したときにコールバックハンドラ(またはイベント)がトリガされるような、非ブロッキングバージョンのメソッドを作成する方法はありますか?

ありがとうございます!

+0

リンクを送信してからコードが変更されているため、コード内のどこを指しているのかわかりにくいです。それは、私が理解していることは、ネットワークレベルでブロックされていないことです。JavaScriptでブロックされている程度です。そのような "ブロッキング"コールでも、複数の並列接続を持つことができ、それぞれが同時にワイヤを介してデータを送信することができます。 –

答えて

1

NodeのStream.pipe()を使用して、データを他の複数のストリームにストリームします。 例:

var w1 = fs.createWriteStream('input-1'); 
var w2 = fs.createWriteStream('input-2'); 
request.pipe(w1); 
request.pipe(w2); 
関連する問題