警告:发生节点 apn emitter.setMaxListeners()
Warning : occur node apn emitter.setMaxListeners()
我使用节点 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 个侦听器时,EventEmitter 倾向于打印警告(默认情况下)。这使我们能够帮助查找内存泄漏。但是,并非所有事件都应仅限于 10 个听众。 emitter.setMaxListeners()
方法允许为这个特定的 EventEmitter 实例修改限制。该值可以设置为 Infinity(或 0)以指示无限数量的听众。
希望对您有所帮助!
您是否使用以下方法关闭了与 APNs 提供商的连接,
apnProvider.shutdown();
发送通知完成后。
我使用节点 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 个侦听器时,EventEmitter 倾向于打印警告(默认情况下)。这使我们能够帮助查找内存泄漏。但是,并非所有事件都应仅限于 10 个听众。 emitter.setMaxListeners()
方法允许为这个特定的 EventEmitter 实例修改限制。该值可以设置为 Infinity(或 0)以指示无限数量的听众。
希望对您有所帮助!
您是否使用以下方法关闭了与 APNs 提供商的连接,
apnProvider.shutdown();
发送通知完成后。