2012-11-25 36 views
12

क्या कोई प्रतिक्रिया बंद करने का कोई तरीका है? मैं res.end() का उपयोग कर सकता हूं लेकिन यह वास्तव में सॉकेट को बंद नहीं करता है।Express.js निकट प्रतिक्रिया

जो मैं प्राप्त करना चाहता हूं: मैं एक जावा प्रोग्राम लिख रहा हूं जो नेटवर्क के साथ इंटरफेस करता है, और मैं इसके लिए एक node.js सर्वर लिख रहा हूं। जावा कोड:

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() कनेक्शन बंद नहीं करता है .. जैसा कि पहले कहा, जावा सोच वहाँ कुछ अगले तो यह है, जबकि पाश में फंस गया है हो जाएगा रहता है।

आप

+0

मैं नवीनतम Node.js और express.js उपयोग कर रहा हूँ –

उत्तर

24

एक HTTP हेडर डिफ़ॉल्ट सेटिंग जीवित-रखें योजना के बजाय कनेक्शन बंद करने के लिए द्वारा हल धन्यवाद।

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

वहाँ किसी भी तरह से मैं सभी प्रतिक्रियाओं को डिफ़ॉल्ट के रूप में हुक कर सकते हैं? –

+3

@AbhishekDeb यदि आप उपरोक्त शीर्षलेख सेट करने वाले मिडलवेयर बनाते हैं तो यह सभी अनुरोधों के लिए काम करेगा –

+0

निश्चित रूप से यह कनेक्शन को बंद करने के लिए दूरस्थ पक्ष को बताता है। यदि आप प्रतिक्रिया में हेडर भेज रहे हैं तो आप कनेक्शन बंद नहीं कर रहे हैं। – Phil

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^