Express.js close response

亡梦爱人 提交于 2019-11-26 14:48:24

问题


Is there a way to close a response? I can use res.end() but it doesn't actually close the socket.

What I want to achieve: I am writing a Java program which interfaces with the network, and I am writing a node.js server for this. Java code:

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

But this just keeps hanging.. No end connection, still waiting for input from the socket.

Node:

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

however res.end() does not close the connection.. As said before, java keeps thinking there will be something next so it is stuck in the while loop.

Thank you


回答1:


Solved by setting a HTTP header to close the connection instead of default keep-alive strategy.

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



回答2:


In case someone who really wants just to close the connection finds this, you can use res.socket or res.connection to get the net.Socket object which comes with a destroy method:

res.connection.destroy();


来源:https://stackoverflow.com/questions/13554319/express-js-close-response

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!