Express.js close response
Solution 1
Solved by setting a HTTP header to close the connection instead of default keep-alive strategy.
res.set("Connection", "close");
Solution 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();
Matej
@matejkramny Hello, I am a Go, JS (node), PHP, Angular, JS, Java and Objective-C/Swift engineer. Email me on [email protected] LinkedIn: linkedin.com/in/matejkramny
Updated on January 12, 2022Comments
-
Matej over 2 years
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 NodeJS 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 thewhile
loop.