Я хочу вытащить сообщения со стены пользователя Facebook.
Следующий фрагмент кода работает, но он никогда не заканчивается:
var https = require('https');
facebookWall = function(user) {
var options = {
host: 'graph.facebook.com',
port: 443,
path: '/me/home?access_token=' + user.facebook_token + '&since=' + encodeURIComponent(user.facebook_timestamp),
method: 'GET',
headers: {
'Connection':'keep-alive'
}
};
var req = https.request(options)
.on('response', function(response) {
var body = '';
response.on('data', function(data) {
body += data;
try {
var wallPosts = JSON.parse(body);
console.log("user " + user.id + " has " + wallPosts.data.length + " new items on their wall");
}
catch (e) {
//console.log("waiting for more data chunks...");
}
})
});
req.end();
req.on('error', function(e) {
console.error(e);
});
}
Я думаю, что это вызвано заголовком 'Connection':'keep-alive'
.Когда я заменю его на 'Connection':'close'
, сценарий прекратит работу, когда все данные будут получены с Facebook.
Я надеюсь, что смогу использовать заголовок keep-alive, чтобы не создавать новое соединение SSL для каждого запроса.У меня есть тысячи запросов, и с заголовком keep-alive он выполняется всего за несколько секунд, в отличие от нескольких минут без заголовка keep-alive.
Кто-нибудь знает, как этого добиться?Я довольно новичок в Node.JS, поэтому, если я упускаю что-то очевидное, я прошу прощения.