【发布时间】:2011-09-14 07:19:41
【问题描述】:
我想从用户 Facebook 墙上拉出帖子。
以下代码 sn-p 有效,但它永远不会终止:
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 还很陌生,所以如果我遗漏了一些明显的东西,我深表歉意。
【问题讨论】:
标签: facebook node.js https keep-alive