2013-11-29 120 views
2

我正在做一个简单的获取请求,但在10个左右的请求后,它停止工作。 在我的本地和生产服务器上也是如此。一旦发生所有后续Get请求失败,直到节点重新启动。节点JS获取随机工作

奇怪的是我无法一直重新创建问题。它来来去去。

我知道我几乎没有提供任何信息,但我不确定该说什么。有没有人有这样的问题?

    var options = { 
         host: 'localhost', 
         port: 80, 
         path: '/first/second/' + data.uid, 
         agent: false 

        } 
        console.log('just before get'); 
        http.get(options, function(res) { 
         res.on('data', function() {}); 
         io.sockets.emit('load new ' + data.uid, {status: 3}); 
         console.log(res.statusCode); 

        }) 

回答

2

您几乎肯定会受到内置HTTP代理的每个域连接池限制的影响。请阅读node.js http module docshyperquest README/rant。您可以通过增加代理的maxSockets选项来调整它。

+0

好吧,让我们来更精确。添加一个'错误'事件处理程序并记录实际的错误。我们需要比“停止工作”更好的东西。目标Web服务器是否记录任何错误? –

+0

同时显示我们所有的代码。设置名称是'maxSockets',所以如果拼错了它,它将不起作用。 –