2012-11-25 31 views
12

是否有办法关闭响应?我可以使用res.end(),但它实际上并没有关闭套接字。Express.js close response

我想实现的是:我正在编写一个与网络接口的Java程序,并且正在为此编写一个node.js服务器。 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循环。

谢谢

+0

我使用最新的Node.js和express.js –

回答

24

通过设置一个HTTP头关闭连接,而不是默认的保持战略解决。

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

有什么办法,我可以把它挂作为默认为所有的反应? –

+3

@AbhishekDeb如果你创建了一个中间件来设置上述头部,那么它将适用于所有请求 –

+0

当然这只是告诉远程端关闭连接。如果您要在回复中发送回头文件,则不会关闭连接。 – Phil