gpt4 book ai didi

node.js - 警告 : occur node apn emitter. setMaxListeners()

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:51 25 4
gpt4 key购买 nike

我使用 Node apn 发送推送通知。

emitter.setMaxListeners()向10,000个用户发送推送时出现问题。

但不会出现向 1,000 个用户发送推送的问题。

如何解决这个问题。

警告消息:

(node:17804) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 wakeup listeners added. Use emitter.setMaxListeners() to increase limit

代码

const server = new Hapi.Server();
server.connection({port: 3000});
...
server.register([{
...
}], (err) => {
if (err) {
throw err;
}

server.start((err) => {
if (err) {
throw err;
}
console.log(`Server running at : ${server.info.uri}`);
});
});

server.route({
method: 'POST',
path: '/push',
handler: function(request, reply) {
...
var notification = new apn.Notification() ;
notification.badge = count ;
notification.sound = "default" ;
notification.alert = message ;
notification.topic = toping ;
...
//here tokens 10,000 counts
apn_sender.send(notification, tokens).then((result) => {

var res = {
success : result.sent.length,
failed : result.failed.length
} ;

return reply(res) ;

}) ;
...
}
});

最佳答案

尝试将 setMaxListeners 设置为,

process.setMaxListeners(0);

当为特定事件添加超过 10 个监听器时,EventEmitters 倾向于打印警告(默认情况下)。这使我们能够帮助查找内存泄漏。但是,并非所有事件都应限制为 10 个监听器。 emitter.setMaxListeners() 方法允许修改此特定 EventEmitter 实例的限制。该值可以设置为 Infinity(或 0)以指示无限数量的监听器。

希望这有帮助!

关于node.js - 警告 : occur node apn emitter. setMaxListeners(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com