OS X 10.8.3
节点 0.10.0
我正在使用“http”模块来发出 Facebook 图形 API 的请求。
以下是我传递给“http.get”的选项:
var options = {host: 'graph.facebook.com',
port: 80,
path: '/' + fb_id + '/picture'}; //fb_id is a Facebook user identifier
我的代码如下所示:
http.get(options,
function(res) {
...some stuff...
DONE(RESULT); //DONE is a callback function
}).on('error', function(e) {
...some error handling...
});
我观察到的是,我只能执行与 http.globalAgent.maxSockets 的值一样多的请求。一旦我达到这么多请求,对 http.get 的下一次调用就永远不会(显然)连接。我已经确认我没有收到请求错误。
就好像在响应进来后套接字没有被关闭。
作为响应处理程序的一部分,我需要做些什么来确保套接字已关闭?
这些套接字是否由于默认的保活行为而没有关闭?
我应该如何进行调试?