Relay subscription helpers for GraphQL.js.
import { graphqlSubscribe, subscriptionWithClientId }
from 'graphql-relay-subscription';
/* ... */
const UpdateWidgetSubscription = subscriptionWithClientId({
name: 'UpdateWidgetSubscription',
inputFields: {
widgetId: { type: GraphQLString },
},
outputFields: {
widget: Widget,
},
subscribe: (input, context) => {
context.subscribe(`widgets:${input.widgetId}:updated`);
},
});
/* ... */
const query = `
subscription ($input_0: UpdateWidgetSubscriptionInput!) {
updateWidget(input: $input_0) {
widget {
name
}
clientSubscriptionId
}
}
`;
const variables = {
input_0: {
widgetId: 'foo',
clientSubscriptionId: '0',
},
};
const context = {
subscribe: (channel) => {
subscriptions.add(channel, query, variables);
},
};
graphqlSubscribe({ schema, query, context, variables });