24

応答を閉じる方法はありますか? 使用できますres.end()が、実際にはソケットを閉じません。

私が達成したいこと: 私はネットワークとやり取りする Java プログラムを作成しており、そのための NodeJS サーバーを作成しています。Java コード:

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

しかし、これはハングアップし続けます。接続が終了していません。まだソケットからの入力を待っています。

ノード:

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

ただしres.end()、接続を閉じません。前に述べたように、Java は次の何かがあると考え続けているため、whileループに陥っています。

4

2 に答える 2

35

デフォルトのキープアライブ戦略の代わりに、HTTP ヘッダーを設定して接続を閉じることで解決しました。

res.set("Connection", "close");
于 2012-11-25T19:26:30.170 に答える