2012-11-25 11 views
12

レスポンスを閉じる方法はありますか?私はres.end()を使うことができますが、実際にはソケットを閉じるわけではありません。Express.js close response

私が達成したいこと:私はネットワークとインタフェースするJavaプログラムを作成しており、これに対してnode.jsサーバを作成しています。 Javaコード:

String line; 
while((line = in.readLine()) != null) { 
    System.out.println("RES: "+line); 
} 

しかし、これはちょうどぶら下がっています。エンド接続はなく、まだソケットからの入力を待ちます。

ノード:Javaはそれはwhileループでスタックしているので、次のものがあるでしょう考え続けて、前にも言ったよう

exports.getAll = function (req, res) { 
    res.set("Content-Type", "text/plain"); 
    res.set(200); 
    res.send(..data..); 
    res.end(); 
} 

しかしres.end()は..接続を閉じません。

は、あなたの代わりに、デフォルトのキープアライブ戦略の接続を閉じるようにHTTPヘッダーを設定することで解決

+0

最新のnode.jsとexpress.jsを使用しています –

答えて

24

ありがとうございます。

res.set("Connection", "close"); 
+0

はすべての応答にデフォルトとしてフックできますか? –

+3

@AbhishekDeb上記のヘッダーを設定するミドルウェアを作成すると、すべての要求に対して機能します。 –

+0

これは、リモート側に接続を終了するように指示するだけです。応答でヘッダーを送り返す場合は、接続を閉じていません。 – Phil