मैं node.js 0.6.18 का उपयोग कर रहा हूं, और निम्न कोड node.js को प्रत्येक दो अनुरोधों के बीच टीसीपी कनेक्शन बंद करता है (लिनक्स पर strace
के साथ सत्यापित)। मैं node.js को एकाधिक HTTP अनुरोधों के लिए एक ही टीसीपी कनेक्शन का पुन: उपयोग कैसे करूं (यानी जीवित रहें)? कृपया ध्यान दें कि वेबसर्वर जीवित रहने में सक्षम है, यह अन्य ग्राहकों के साथ काम करता है। वेबसर्वर एक खंडित HTTP प्रतिक्रिया देता है।HTTP के साथ निरंतर अनुरोध कैसे भेजें node.js में रहते हैं?
var http = require('http');
var cookie = 'FOO=bar';
function work() {
var options = {
host: '127.0.0.1',
port: 3333,
path: '/',
method: 'GET',
headers: {Cookie: cookie},
};
process.stderr.write('.')
var req = http.request(options, function(res) {
if (res.statusCode != 200) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
process.exit(1)
}
res.setEncoding('utf8');
res.on('data', function (chunk) {});
res.on('end', function() { work(); });
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
process.exit(1);
});
req.end();
}
work()
आप कभी भी इस यह पता लगाने के लिए सक्षम थे ? –
नहीं, मुझे जवाब नहीं पता – pts
आप यह जानना चाहते हैं कि कॉलिंग() कॉलिंग एक स्टैक मेमोरी रिसाव बनाएगी। ऐसा इसलिए है क्योंकि प्रत्येक अंत घटना कार्य() पर एक नई कॉल जोड़ती है, जब तक कि प्रत्येक कॉल का अंत ईवेंट पूरा नहीं हो जाता तब तक स्टैक को कभी भी जारी नहीं किया जाता है। इसके आसपास काम करने के लिए, आप "process.nextTick (काम)" पर कॉल करके कार्य() को दायरे से बाहर धक्का देना चाहते हैं; "। यह अंत हैंडलर को समाप्त करने की अनुमति देगा। – thesmart