Предупреждение: возникает узел apn emitter.setMaxListeners()
Я отправляю push-уведомления с использованием узла apn.
Возникла проблема emitter.setMaxListeners() с отправкой push на 10000 пользователей.
но не возникает проблемы с отправкой push на 1000 пользователей.
как решить эту проблему.
предупреждающее сообщение:
(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) ;
}) ;
...
}
});
1 ответ
Попробуйте установить setMaxListeners
как,
process.setMaxListeners(0);
EventEmitters имеет тенденцию выводить предупреждение (по умолчанию), когда для определенного события добавляется более 10 слушателей. Это позволяет нам находить утечки памяти. Однако не все события должны быть ограничены только 10 слушателями. emitter.setMaxListeners()
Метод позволяет изменить ограничение для этого конкретного экземпляра EventEmitter. Значение может быть установлено в бесконечность (или 0), чтобы указать неограниченное количество слушателей.
Надеюсь это поможет!.
Вы отключили подключение к поставщику APN, используя следующее:
apnProvider.shutdown();
После отправки уведомление было завершено.