node.js - 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,但我认为这不是正确的解决方案。
有什么想法吗 ?谢谢。
解决方案
推荐阅读
- typescript - 冰沙图表用电子 vuejs 显示为空
- javascript - 如何部分更新 MongoDB 中的字段,以便新字段将一些文本添加到现有记录
- parallel-processing - 如何将 numactl 与 slurm 一起使用?
- java - android(Rest Api)中每行中带有接受和拒绝请求按钮的列表视图
- c# - IdentityServer 4 使用用户名或电话号码登录
- python - Python - 在 Django 2.2 中更新用户
- javascript - Javascript中稳定/中立/文化不敏感的语言环境?
- jquery - 将列表的倒数第二个元素的 href 复制到同一页面上的另一个元素
- swift - 为什么会跳过带有字符串字段的 Firebase 文档?
- java - 从 MySQL 迁移到 MariaDB