Subscription 정의
// 스키마
type Subscription {
messageAdded(chatId: ID!): Message!
}
// Resolver
const resolvers = {
Subscription: {
messageAdded: {
subscribe: (_, { chatId }) =>
pubsub.asyncIterator([`CHAT_${chatId}`]),
},
},
};클라이언트
import { useSubscription, gql } from "@apollo/client";
const NEW_MESSAGE = gql`
subscription OnMessage($chatId: ID!) {
messageAdded(chatId: $chatId) {
id content author { name }
}
}
`;
const { data } = useSubscription(NEW_MESSAGE, {
variables: { chatId: "1" },
});
댓글 0