0

工作让订阅在阿波罗工作。我的网络套接字设置正确,我可以看到我正在连接,因为我看到它流入了 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 示例和中等帖子,但仍在努力使最后一部分正常工作。

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

4

1 回答 1

3

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

尽管如果您确实在此过程中遇到了问题,请深入了解 graphql 订阅包。你至少会对事物的运动方式有一个更好的了解。

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

于 2016-11-16T20:52:18.910 回答