首页 > 解决方案 > MongoError: connect EMFILE - 有办法告诉 Socket-io 终止非活动连接吗?

问题描述

我遇到了一个与我的 nodeJS 应用程序和使用 Socket-io 的 WebSocket 相关的问题。

在对几个用户进行了一些测试后,我的服务器遇到了问题,因为生成了这个错误:

MongoError: connect EMFILE 127.0.0.1:27017

经过一些研究,我发现错误意味着错误最大文件,这表明操作系统拒绝我的程序打开更多文件描述符。然后我查看了我的服务器并使用了这一行:

lsof -n -i -P | grep node

显示了很多连接,我很确定会发生这种情况,因为我正在使用 Socket-io 发送实时通知

在此处输入图像描述

我的理论是所有这些通知都保持打开状态并因此产生 EMF 错误,所以我的问题是,如何在我的 nodeJS 代码中指定连接不能永远处于活动状态?有办法告诉 Socket-io 终止非活动连接吗?

PD:其他类似的帖子建议增加服务器中的 ulimit,但我认为这不是正确的解决方案。

有什么想法吗 ?谢谢。

标签: node.jssocketssocket.io

解决方案


推荐阅读