我有一个由服务器和客户端组成的Node.js应用程序,它们使用TCP之上的协议进行通信。我为应用程序实现了一个简单的负载测试。基本上有一堆客户端连接到服务器并交换消息。这一切都适用于大约600个客户端,然后我开始得到ECONNRESET错误。为了确保它不是实现,我创建了一个非常简单的TCP服务器/客户端,客户端将只连接到服务器。这可以达到大约900个连接,但随后它开始给出相同的错误。我正在使用Maverics在Mac上运行此应用程序。我已经玩过sysctl和ulimit,但没有任何效果。以下是我更改的设置:
我使用的简单TCP服务器/客户端实现如下:
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 6969;
var server = net.createServer();
server.listen(PORT, HOST);
server.on('connection', function(sock) {
console.log('New Client')
});
for(var i = 0; i < 2000; i++) {
var client = new net.Socket();
client.connect(PORT, HOST, function () {
console.log('Connected');
});
}
我不确定此问题是否与操作系统或节点相关。