Метод подписки Apollo Server Subscription никогда не вызывается - PullRequest
0 голосов
/ 10 июля 2020

У меня есть существующий Express ApolloServer. Я добавил к этому подписку. Я вижу, когда я запускаю подписку из Playground, вызывается метод разрешения. Но метод subscribe никогда не вызывается


const { PubSub, withFilter } = require ('apollo-server');
const pubsub = new PubSub();
const SOMETHING_CHANGED_TOPIC = 'something_changed';

const mySubscription = {

  Subscription: {
    somethingChanged: {
      resolve: root => {
        console.log('subscription server resolve', { root })
        return root
      },
      subscribe: () => {
        console.log('I AM HERE IN SUBSCRIPTION', pubsub.asyncIterator(SOMETHING_CHANGED_TOPIC))
        return pubsub.asyncIterator(SOMETHING_CHANGED_TOPIC)
      }
    }
  }
};

module.exports = { mySubscription}

Я вижу, что console.log('subscription server resolve', { root }) печатается, хотя root не определено. Но аналогичный console.log('````') в subscribe не выполняется.

1 Ответ

0 голосов
/ 17 июля 2020

Вам нужно позвонить pubsub.publish куда-нибудь (обычно в один из ваших распознавателей), чтобы активировать подписку.

https://www.apollographql.com/docs/apollo-server/data/subscriptions/#subscriptions -пример

...