- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的 Node.JS
应用程序中,我需要通过 TCP 连接递归执行 writer
函数。我就是这样做的:
var net = require('net');
const commonConfig = require('../config.common')
var server = net.createServer(function(socket) {
let writer = () => {
socket.write(Date.now() + '\n\r')
socket.pipe(socket)
setTimeout(writer, 1000)
}
writer()
});
server.listen(commonConfig.TCP_PORT, commonConfig.TCP_ADDR);
但是,我收到以下警告:
( Node :4497)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个最终听众。使用emitter.setMaxListeners()来增加限制
( Node :4497)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个完成听众。使用emitter.setMaxListeners()来增加限制
( Node :4497)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个取消管道监听器。使用emitter.setMaxListeners()来增加限制
( Node :4497)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个排水监听器。使用emitter.setMaxListeners()来增加限制
( Node :4497)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个数据监听器。使用emitter.setMaxListeners()来增加限制
( Node :4497)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个错误监听器。使用emitter.setMaxListeners()来增加限制
( Node :4497)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 位亲密听众。使用emitter.setMaxListeners()增加限制
这些问题是由什么引起的?如何在不破坏功能的情况下解决这些问题?
最佳答案
我最近遇到了类似的问题,管道导致最大监听器警告。我没有使用事件监听器,而是严格管道资源。当我添加太多可写管道来接收来自同一源的数据时,例如 sourcePipe.pipe(writablePipe)
,nodejs 会发出警告。
使用 --trace-warnings 标志启动我的应用程序会提供更多详细信息,具体告诉我问题发生的位置,这正是管道发生的代码。 node --trace-warnings app.js
。将该标志传递给您的应用可能有助于为您提供有关问题的更多详细信息。
(node:5676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 data listeners added. Use emitter.setMaxListeners() to increase limit
at _addListener (events.js:281:19)
at Mp4Frag.addListener (events.js:298:10)
at Mp4Frag.Readable.on (_stream_readable.js:775:35)
at Mp4Frag.Readable.pipe (_stream_readable.js:638:7)
at Socket.socket.on (L:\WebstormProjects\ffmpeg-streamer\sockets\mse.js:83:33)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at L:\WebstormProjects\ffmpeg-streamer\node_modules\socket.io\lib\socket.js:513:12
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)
它指向mse.js文件的第83行,即mp4frag.pipe(writable);
我对此感到困惑,因为我知道这并不是因为我有任何未处理的监听器导致内存泄漏。我想我们有理由增加最大听众限制,因为我们已经做了尽职调查。
在我的源管道上,我添加了一些代码mp4frag.setMaxListeners(20);
。现在,当我超过这个数字时,我会收到警告MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 21 个终端听众。使用emitter.setMaxListeners()来增加限制
,这告诉我我的设置值20正在被使用。
关于node.js - 递归使用 socket.pipe 时的 MaxListenersExceededWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47774663/
我有一个错误,我不知道如何解决。它只发生过几次。 错误信息: (node:9140) MaxListenersExceededWarning: Possible EventEmitter memory
我一直在为数据库编写一个设置脚本,今天晚上我开始在控制台中收到一些 MaxListenersExceededWarning 警告。 我调试了来自特定 request-promise-native 调用
我有一个 firebase HTTP 函数,它依次调用一些 firestore 操作。如果我多次调用 HTTP 函数,让每个调用在调用下一个之前完成,我会在 firebase 函数日志中收到以下错误:
我收到此错误: ( Node :7932)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个错误监听器。使用emitter.se
在我的 Node.JS 应用程序中,我需要通过 TCP 连接递归执行 writer 函数。我就是这样做的: var net = require('net'); const commonConfig =
我已经测试了以太坊合约的代码 const assert = require("assert"); const ganache = require("ganache-cli"); const Web3
我已了解此错误并知道它是什么,并且还知道如何通过将 MaxListeners 设置为 0 来禁用它。但我想知道是什么导致了这个错误,所以我可以正确处理它。 基本上这里有一个机器人来检查我的帐户是否有新
我正在构建一个快速服务器来接收来自我的 react 前端的请求(一个包含 10 个项目的字典),然后将数据保存到数据库中。下面是我的代码。我发现我的代码有效,并且查询确实将记录保存回 Db。但是在每个
(node:125008) MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个准备好的听众。使用 emitter.setMaxL
在使用winston-daily-rotate-file包进行文件日志记录时,在winston中出现以下错误,代码与winston控制台日志记录配合良好, MaxListenersExceeded
我在 Nodejs 应用程序上收到此错误: Node 版本:v8.11.1 (node:6261) MaxListenersExceededWarning: Possible EventEmitter
我知道这可能会标记为重复的解决方案,但堆栈溢出的解决方案对我不起作用。 问题 (node:5716) MaxListenersExceededWarning: Possible EventEmitte
我是一名优秀的程序员,十分优秀!