当前位置: 首页 > 知识库问答 >
问题:

Graphql订阅不捕获客户端变量

巩子实
2023-03-14

我尝试使用以下库来使用graphql订阅:

GraphQL-服务器端订阅

客户端的订阅-传输-WS

        this.resolvers.Subscription[subscription.name] = {
            subscribe: withFilter((...params) => {console.log('subscription params: ', ...params); return this.pubsub.asyncIterator(subscription.name.toUpperCase());}, (...params) => {
                console.log('filtering params: ', ...params)
                return true // payload[subscription.name]._group === variables._group;
            }),
        };

因此,在传递给用于筛选数据的withfilter函数的回调中,我没有获取请求者_group参数的变量对象和上下文对象。

库的安装版本如下所示:

// server
"graphql": "^14.6.0",
"graphql-subscriptions": "^1.1.0",
// client
"graphql": "^15.0.0",
"graphql-tag": "^2.10.3",
"subscriptions-transport-ws": "^0.9.16"

共有1个答案

方浩旷
2023-03-14

我已经放弃使用变量,因为我发现我可以发送查询和突变请求之类的参数。因此,我更改了请求,以便它现在可以进行如下查询:

而且服务器在订阅的类型定义中接受该参数。现在,withfilter过滤器函数(第二次回调)的输入参数是有效载荷和变量,它们分别是由突变发布的数据和从订阅者检索的数据。

所以现在有了上面的要求,当前的功能工作得很完善:

        this.resolvers.Subscription[subscription.name] = {
            subscribe: withFilter(_ => this.pubsub.asyncIterator(subscription.name.toUpperCase()), (payload, variables) => {
                console.log(payload, variables);
                return payload[subscription.name]._group === variables._group;
            }),
        };
 类似资料:
  • 我在Apollo中的GraphQL订阅遇到了麻烦。我想订阅关于主题的添加“透视图”(基本上是在帖子上添加评论),我很确定我已经正确地设置了服务器。客户才是给我带来麻烦的人。(如果这个问题看起来很熟悉,我以前问过它,以为我得到了答案,但没有去)。下面是我的订阅模式: 我也正确地连接了客户端,因为在我的终端中,我看到了“WebSocket connection Selected”消息。我被难倒的部分是

  • 我正在学习如何使用gem在Rails应用程序中实现GraphQL API。我不清楚GraphQL订阅的用例。 我不清楚GraphQL订阅和ActionCable之间的区别。 假设我有一个从GraphQL API获取数据的移动应用程序。 我是否可以直接使用ActionCable将更改发布到移动客户端?如果是,那么为什么要使用GraphQL订阅呢?

  • 我是MQTT的新手,我有一些问题希望你们能帮助我。我正在做一个学校项目,需要我使用MQTT协议,程序需要用C语言编写。(只是一些背景信息) > MQTT客户端可以同时是发布服务器和订阅服务器吗?也就是说,在不断等待从代理接收消息并执行结果操作的同时,它还能够在需要时将消息发布到代理。 我对MQTT的理解是:MQTT发布者-->MQTT代理-->MQTT订阅者 用白痴的话来说,MQTT的异步模式到底

  • 轻推支持在电脑端和手机端创建订阅号,创建完成后待管理员审核通过后即创建成功,但仍需登录电脑端轻推进入企业管理设置和发送订阅号。 1. 手机端 通讯录-订阅号-发现-新建-设置头像-设置名称-描述订阅号-选择需要创建订阅号的企业 2. 电脑端 电脑端操作方法与手机端相同。

  • 我尝试执行Graphql客户端查询。遗憾的是,我找不到任何关于如何使用动态图QL客户端进行简单变异的文档或示例。这是文件https://quarkus.io/guides/smallrye-graphql-client. {0}..{4} 是可变占位符。有人知道如何使用DynamicGraphlQlClient执行这个查询吗? 谢谢