Подтвердить что ты не робот

Экспресс .js закрыть ответ

Есть ли способ закрыть ответ? Я могу использовать res.end(), но фактически не закрывает сокет.

Что я хочу достичь: я пишу программу Java, которая взаимодействует с сетью, и я пишу для этого сервер node.js. Код Java:

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

Но это просто держится. Нет конца соединения, все еще ожидающего ввода из сокета.

Node:

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

однако res.end() не закрывает соединение. Как уже говорилось, java продолжает думать, что будет что-то следующее, чтобы оно застряло в цикле while.

Спасибо

4b9b3361

Ответ 1

Решено, установив HTTP-заголовок, чтобы закрыть соединение вместо стратегии сохранения по умолчанию.

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

Ответ 2

Если кто-то, кто действительно хочет просто закрыть соединение, обнаружит это, вы можете использовать res.socket или res.connection, чтобы получить объект net.Socket, который поставляется с методом destroy:

res.connection.destroy();