Я использую node.js v. 0.4.8. Когда я создаю сервер HTTPS, я никогда не получаю событие response.on('end',...) (но я делаю это для HTTP-протокола). Я прочитал отчеты о проблемах на странице node github - https://github.com/joyent/node/issues/728, и, по-видимому, это проблема, которая регрессировала в 0.4.8. response.on( "close",...), похоже, имеет одинаковую функциональность, но я недостаточно знаю о HTTP/HTTPS, чтобы судить. Могу ли я использовать его в качестве замены для response.on('end',...), и может ли это вызвать какие-либо проблемы в будущем?
Вы можете увидеть пример кода ниже. Спасибо заранее!
var request = "JSON_request";
var https = require('https');
var options = {
host:"someHost.com",
path:"somePath",
method: "POST",
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(request)
}
};
var req = https.request(options, function(res){
var response = "";
res.setEncoding('utf8');
res.on('data', function(chunk){
console.log("INFO: "+chunk);
response += chunk;
});
// This never happens
res.on('end', function(){
console.log("End received!");
});
// But this does
res.on('close', function(){
console.log("Close received!");
});
});
req.on('error', function(error){
console.log("Error: "+error);
});
req.write(request);
req.end();