javascript - 如何检查 node.js 中打开的连接数?

标签 javascript comet node.js file-descriptor evented-io

我有一台运行 node.js (v0.1.32) 的机器,带有一个 tcp 服务器 (tcp.createServer) 和一个 http 服务器 (http.createServer)。 http 服务器被基于 comet 的应用程序在端口 80 上发出的长轮询请求(每次持续 50 秒)击中。出于相同目的,iphone 应用程序在端口 8080 上有 tcp 套接字连接。

发现服务器有一段时间无法处理更多的连接(尤其是tcp连接,而http连接似乎正常!!??),重启后才正常。

为了对连接进行负载测试,我创建了一个 tcp 服务器并生成了 2000 个请求,并发现在达到机器上的最大文件描述符限制(默认 1024)后连接开始失败。这是一个非常小的数字。

所以,这里有一个新手问题:如何扩展我的应用程序以处理 node.js 上更多的连接数以及我如何处理这个问题。

有没有办法找出当前有多少事件连接?

谢谢 分享

最佳答案

您可以使用以下方法获取连接数:

var server = http.createServer(app);     
server.getConnections(function(error, count) {
    console.log(count); 
});

使用它你可以继续检查连接,当它超过阈值时关闭之前的连接。希望能帮助到你。

关于javascript - 如何检查 node.js 中打开的连接数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214453/

相关文章:

javascript - 使用 Html 插件从子目录提供 webpack 构建资源

javascript - 表达 res.redirect() 返回 HTML 而不是重定向

Javascript - 将对象数组添加到现有对象数组

internet-explorer - IE8在5次长轮询请求后停止网络访问

tomcat - 为什么我需要关闭 cometd 事件才能发送数据? ( Tomcat 6)

php - PHP 中的内存泄漏 Comet 服务器

node.js - 在谷歌 App Engine : An error occurred: ffmpeg was killed with signal SIGABRT Error: ffmpeg was killed with signal SIGABRT 上部署

javascript - 在 angularjs 中为什么我们在 angular.module() 函数中使用 [] ?

javascript - 如何使用 moment.js 获取所选语言环境的工作日数组而不更改其全局本地化?

javascript - 适用于所有浏览器的 window.href