我正在使用Socket-io遇到与我的nodeJS应用程序和WebSocket相关的问题。
在与几个用户进行了一些测试之后,我的服务器遇到了问题,因为会生成此错误:
MongoError: connect EMFILE 127.0.0.1:27017
经过一些研究,我发现错误意味着文件最大错误,这表明操作系统拒绝我的程序打开更多文件描述符。然后我看了看我的服务器并使用了这一行:
lsof -n -i -P | grep node
显示了很多连接,我很确定会发生这种情况,因为我正在使用Socket-io发送实时通知
我的理论是所有这些通知都保持打开状态,因此会产生EMF错误,所以我的问题是,如何在nodeJS代码中指定连接永远无法激活?有一种方法可以告诉Socket-io杀死不活动的连接吗?
PD:其他类似的帖子建议增加服务器中的ulimit,但是我认为那不是正确的解决方案。
有什么想法吗?谢谢。