【发布时间】:2020-04-04 01:18:23
【问题描述】:
我有一个使用 graphql 订阅来实现聊天功能的应用。我已经成功地让订阅工作了,但是在引入 withFilter 函数以过滤消息发送到哪些客户端之后,我在前端收到以下错误:
订阅字段必须返回 Async Iterable。收到:未定义
这是我的订阅解析器:
const { PubSub, withFilter } = require('graphql-yoga');
const pubsub = new PubSub();
pubsub.ee.setMaxListeners(30);
const Subscription = {
detailedConversation: withFilter(
() => pubsub.asyncIterator('detailedConversation'),
(payload, args) => {
return true;
}
)
};
module.exports = {
Subscription,
pubsub
};
由于 withFilter 的第二个参数必须是一个返回布尔值的函数,所以我暂时将其设置为返回 true。
Graphql-yoga 在后台使用了 graphql-subscriptions,在阅读了关于实现 here 的文档后,我看不出我做错了什么?
仅供参考,第一次尝试订阅对话时会发生错误,而不是在发送消息或任何内容时发生
【问题讨论】:
标签: javascript websocket graphql