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 the while
loop.
end() method ends the current response process. This method is used to quickly end the response without any data.
res. end() is used to quickly end the response without sending any data.
To properly close Node Express server, we can call the close method. to call server. close with a callback that has the error err parameter. If err is set, then there's an error when closing the Express server and we call process.
res. send and end are express functions to return data for the client.
Solved by setting a HTTP header to close the connection instead of default keep-alive strategy.
res.set("Connection", "close");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With