ApolloGraphQL:MaxListenersExceededWarning?

时间:2018-06-19 02:28:05

标签: graphql apollo apollo-server apollostack graphql-subscriptions

我在我的解析器中声明了4个订阅。以下是其中一个例子:

IMAdded: {
    subscribe: withFilter(
        () => pubsub.asyncIterator(IM_ADDED_CHANNEL),
        (IMAdded, args) => {
            if (typeof(IMAdded) == 'undefined') {
                return false;
            }

            const userId = IMAdded.context.userId;
            if ((userId !== args.fromID) && (userId !== args.toID)) {
                console.log('unauthorized access');
                return false;
            }

            let result = false;
            IMAdded = IMAdded.IMAdded; 
            result = ((IMAdded.fromID === args.fromID && IMAdded.toID === args.toID) || (IMAdded.fromID === args.toID && IMAdded.toID === args.fromID));
            return result;
        }
    )
}

在我的本地开发系统上,我只有2个用户登录。到目前为止,他们每个人都在一个订阅频道上调用subscribeToMore。两者都订阅了相同的订阅频道。

我在服务器上收到此控制台错误:

  

MaxListenersExceededWarning:可能的EventEmitter内存泄漏   检测。添加了11个IMAdded监听器。使用   emitter.setMaxListeners()增加限制

如果我使用:

 const pubsub = new PubSub(); 
 pubsub.ee.setMaxListeners(30); 

...它达到最大值30并在那里抛出错误。

什么可能宣布超过30名听众?我甚至不知道它是客户端还是服务器上的东西。

感谢所有人提出任何意见/建议。

0 个答案:

没有答案