node.js - 检测到套接字 io 可能的 EventEmitter 内存泄漏
问题描述
一旦事件完成,我想删除监听器以避免套接字 io 中的这个问题。
我收到此错误
MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个连接侦听器。使用emitter.setMaxListeners() 增加限制
我曾尝试使用 removeAllListeners / removeListener / off 但它们都不起作用。
const io = socket(httpServer);
(async () => {
await io.on('connection', async function (client) {
// Some Code //
await client.emit('message', "Done")
io.removeAllListeners("connection")
})
})
解决方案
如果您想要与单个客户端的单个套接字连接,请使用await io.once
而不是。await io.on
否则,它会为服务器端的每个请求生成多个服务器侦听器实例。
推荐阅读
- robotframework - 将可选的自由关键字参数添加到自定义机器人框架 java 库关键字
- sql - 选择并按字段分组,强制分组但未正确分组
- r - .lintr 配置文件在哪里?
- visual-studio-2017 - 检测到超出依赖约束 microsoft.aspnetcore.app 2.1.1 的包版本需要 microsoft.netcore.razor.design..”
- laravel - Laravel Expo 推送通知 - 在 Android 上未收到通知
- dialogflow-es - 是否可以将数据返回到 Dialogflow?
- ios - 在 iOS 应用程序中编辑 gpx 文件
- python - seaborn 海图上的 Y 轴标签被切断
- vb.net - 如何在“form1 design”窗口中隐藏带有对象的面板?
- c++ - 将 std::string 传递给 WriteConsole API