Node.js http服务器:" getifaddres:太多打开的文件"

时间:2016-06-03 13:36:41

标签: node.js

我目前正在运行nodejs服务器,并使用GazeboJS连接到Gazebo服务器以发送消息。

问题是: 从我的搜索看来它似乎是由于linux打开文件限制,默认为1024(使用Ubunuty 14.04)。大多数解决方案似乎是增加打开文件限制。

但是,我不知道为什么我的脚本会打开文件而不关闭它们。看起来每个http请求打开一个连接,即使发送了响应,该连接也没有关闭? http请求来自使用async的Lua脚本。

错误

getifaddres: Too many open files

恰好在1024个请求之后发生。

我没有网络服务器的经验,所以我希望有人能给出解释。

我正在运行的nodejs服务器的详细信息:

使用

创建服务器
http.createServer(function(req, res))

当收到HTTP GET请求时,响应将作为字符串发送。一个回复的例子

gazebo.subscribe(obj.states[select].type,  obj.states[select].topic, function(err, msg)   // msg is a JSON object
{
    if (err)
    {
        console.log('Error: ' + err);
        return;
    }
    res.setHeader('Content-Type',  'text/html');
    res.end(JSON.stringify(msg));
    gazebo.unsubscribe(obj.states[select].topic);   
})

该脚本利用Gazebo服务器中的发布/订阅主题来提取信息或发布操作。有关Gazebo通信的更多信息是here

0 个答案:

没有答案