2

私はnodejs httpサーバーを持っています。1 つの要求を送信して応答を取得した後、server.close() を使用して閉じようとしていますが、閉じるのに非常に長い時間がかかります (60 秒以上)。何が問題になる可能性がありますか?

編集

現在、私はテストのためにクロムの高度なレストクライアントを使用しており、キープアライブに固執してはならないことを知っている限り、応答を取得した後に1つの要求結果を送信すると、応答が遅くなります。私は間違いなく、response.write() の後に response.end() で応答を閉じています。

ここにいくつかのコードがあります:

handleRequest = function(request, response) {
    var body = '';
    request.on('data', function (data) {
        body += data;
    });
    request.on('end', function() {
        // get some data from db...
        response.setHeader('Content-Type', 'application/json');
        response.write(result);
        response.end();
    });
});

var server = http.createServer(handleRequest);
server.listen(8000);

process.on('SIGINT', function() {
    if (server != undefined) {
        console.log("Closing Server...");
        server.close(function (e) {
            if (e) {
                throw 'Error on closing server';
            } else {
                console.log("Server closed");
            }
        });
    }
});
4

1 に答える 1

2

データを送信した後、返信が完了したことを確認してください。

応答.終了()

これが機能しない場合は、コード サンプルを投稿できます。

于 2013-07-11T16:53:30.767 に答える