我正在使用带有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)
答案 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