首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告:发生节点apn emitter.setMaxListeners()

警告:发生节点apn emitter.setMaxListeners()
EN

Stack Overflow用户
提问于 2017-05-11 05:32:54
回答 2查看 886关注 0票数 2

我使用节点apn发送推送通知。

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

但没有出现向1000名用户发送推送的问题。

如何解决这个问题。

警告信息:

代码语言:javascript
复制
(node:17804) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 wakeup listeners added. Use emitter.setMaxListeners() to increase limit

代码

代码语言:javascript
复制
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) ;

        }) ;
        ...
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-11 05:58:54

尝试将setMaxListeners设置为,

代码语言:javascript
复制
process.setMaxListeners(0);

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

希望这能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2020-10-13 09:53:29

您是否使用以下方法关闭到APN提供程序的连接,

代码语言:javascript
复制
apnProvider.shutdown();

发送通知完成后。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43907278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档