【问题标题】:Apollo Subscription PubSub not triggering ListenerApollo 订阅 PubSub 未触发侦听器
【发布时间】:2017-03-30 21:58:08
【问题描述】:

工作让订阅在阿波罗工作。我的网络套接字设置正确,我可以看到我正在连接,因为我看到它流入了 pubsub 模块。虽然我认为我的订阅方式有些问题,因为我发布时服务器没有触发响应。

对命名方面的任何混淆表示歉意,因为我将它用于称为订阅的东西。

Graphql 订阅

  subscription subscriptionsUpdated($userId: String!){
    subscriptionsUpdated(user: $userId, type:ROOM, open:true) {
        id,
        parent{
          ... on Rooms{
            id
          }
        }
    }
  }

GraphQLType

  subscription: new GraphQLObjectType({
    name: `subscriptions`,
    fields: {
      subscriptionsUpdated:{
        type:Subscriptions.type,
        args:{
          parent: { type: GraphQLString},
          type:{ type: ContentTypes },
          open: {type: GraphQLBoolean },
          user:{type: GraphQLString },
        },
        resolve:(source, args)=>{
          console.log('it worked and stuff');
          return {};
        }
      },
    }
  })

订阅管理器和设置功能:

import schema from '../graphql/index.js';
const subscriptionManager = new SubscriptionManager({
  schema,
  pubsub,
  setupFunctions: {
    subscriptionsUpdated: (options, args) => ({
      subscriptionsUpdated: (comment)=>{
        return true;
      },
    }),
  },
});

在我的突变中(我可以看到这种射击)

pubsub.publish('subscriptionsUpdated', doc);

随着事件触发,subscriptionsUpdated 解析函数/或设置函数不应该触发吗?

我已经查看了有关该主题的 githunt 示例和中等帖子,但仍在努力使最后一部分正常工作。

任何帮助或见解都会很棒!

【问题讨论】:

  • 订阅最初的调试可能有点棘手,所以我会尽可能简化。您是否尝试过删除 setupFunctions?如果频道与顶级订阅字段同名,我认为它们是可选的。
  • 是的,尝试删除设置功能。还是没有骰子。我在想也许我的 graphql 订阅查询设置错误,但不确定。继续挖掘。

标签: javascript graphql apollostack apollo-server react-apollo


【解决方案1】:

我希望我有一个更好的答案来解决我的问题。我一直在调整一些东西,我不确定我做了什么让它工作。嗯……:/

如果您在此过程中确实遇到了困难,请深入了解 graphql 订阅包。您至少可以更好地了解事物的运行方式。

如果您的连接正确,您的浏览器将响应您遇到的任何其他错误。希望他的帮助!旅途安全!

【讨论】:

    猜你喜欢
    • 2018-09-30
    • 2018-06-09
    • 1970-01-01
    • 2022-06-10
    • 2019-10-17
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多