У меня есть подписка на graphql в nodejs, как показано ниже:
const resolvers = {
Query: () => { ... },
Mutation: () => { ... },
Subscription: {
commentAdded: {
subscribe: withFilter(
() => pubsub.asyncIterator('COMMENT_ADDED'),
(payload, variables) => {
return payload.commentAdded.repository_name === variables.repoFullName;
},
),
}
},
};
Вы можете видеть, что эта подписка использует topi c COMMENT_ADDED
, который является жестко закодированной строкой. Мне интересно, могу ли я создать имя Dynami c topi c на основе запроса пользователя.
Что-то вроде кода ниже. Он подписывается на topi c с суффиксом payload.id
. Как я могу сделать это на сервере apollo?
subscribe: withFilter(
(payload) => pubsub.asyncIterator('COMMENT_ADDED:'+payload.id),
(payload, variables) => {
return payload.commentAdded.repository_name === variables.repoFullName;
},
),