2012-11-25 37 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