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 标头来关闭连接而不是默认的 keep-alive 策略来解决。

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

万一真的想关闭连接的人发现了这个,你可以使用res.socketres.connection来获取带有destroy方法的net.Socket对象:

res.connection.destroy();
于 2019-06-18T05:35:33.140 回答