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

问题描述 投票:7回答:3

我有一台运行node.js(v0.1.32)的计算机,并带有tcp服务器(tcp.createServer)和http服务器(http.createServer)。在基于80端口的基于彗星的应用程序发出的长轮询请求(每个持续50秒)攻击了http服务器。出于相同的目的,来自iPhone应用程序的8080端口上也有tcp套接字连接。

[发现服务器暂时无法处理更多连接(特别是tcp连接,而http连接似乎正常!!?),并且仅在重启后才正常。

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

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

是否有办法找出当前有多少活动连接?

谢谢Sharief

javascript comet node.js file-descriptor evented-io
3个回答
1
投票
对于我的彗星风格的节点应用程序,我保留了一个对象,将其添加为属性。每隔X秒,我就会遍历该对象,并查看是否应关闭任何连接(在您的情况下,任何超出50秒限制的连接)。

关闭连接时,只需从连接对象中删除该属性。然后,您可以通过Object.size(connections)

随时查看打开了多少个连接

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

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

© www.soinside.com 2019 - 2024. All rights reserved.