GraphQL Subscriptions
Real-time data with subscriptions
Define Subscription
type Subscription {
messageAdded(channelId: ID!): Message!
userUpdated(id: ID!): User!
} # subscription type in schema
Subscribe
subscription {
messageAdded(channelId: "1") {
id
content
author {
name
}
}
} # subscribe to events
Subscription Resolver
const resolvers = {
Subscription: {
messageAdded: {
subscribe: () => pubsub.asyncIterator(['MESSAGE_ADDED'])
}
}
}; # resolver with pubsub
Publish Event
const resolvers = {
Mutation: {
addMessage: (parent, args) => {
const message = createMessage(args);
pubsub.publish('MESSAGE_ADDED', {
messageAdded: message
});
return message;
}
}
}; # publish to subscribers