如何增加本地计算机上的最大websocket连接数?

时间:2017-06-19 11:33:52

标签: javascript node.js websocket

我正在使用带有ws module的websocket编写游戏,我尝试在本地计算机上创建一些虚拟websocket连接来测试它。但是,当我创建超过250个连接时,它会出错:

 throw er; // Unhandled 'error' event
      ^

Error: connect ECONNRESET 127.0.0.1:9999
    at Object.exports._errnoException (util.js:1014:11)
    at exports._exceptionWithHostPort (util.js:1037:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1138:14)

如何删除此错误并获取更多测试连接?当连接数在1 - 210范围内时,我没有收到错误。但有时我得到这个错误,如果连接数超过250,我总是得到这个错误。我不确定导致此错误的原因。是因为我的电脑无法处理这么多本地连接吗?我正在使用OSX Yosemite(10.10.5)

1 个答案:

答案 0 :(得分:0)

刚刚发现了这个:

Increase TCP max connections on OSX

原因是OSX Yosemite中的最大打开文件数量有限。我只需要更改最大打开文件数和最大连接数。

我将把上面链接中的命令放在这里:

增加最大打开文件

$ sysctl -a | grep files
kern.maxfiles = 12288
kern.maxfilesperproc = 10240

kern.maxfiles和kern.maxfilesperproc是小数字,需要增加:

$ sudo sysctl -w kern.maxfiles=12288
$ sudo sysctl -w kern.maxfilesperproc=10240

此后,您可以通过ulimit -n:

增加帐户的限额
$ ulimit -n 10240

增加最大套接字

$ sysctl -a | grep somax
kern.ipc.somaxconn: 2048

这是一个很小的数字,需要增加:

$ sudo sysctl -w kern.ipc.somaxconn=2048