GraphQL / Apollo Server 란?
실시간 통신이란?
서버의 데이터가 변경되는 것을, 클라이언트가 감시(listen)하고 있다가,
변경된 부분을 바로바로 앱에 표현해 주는 것
( ex: 채팅방, 주식 차트 창 등등 )
subscription이란?
Apollo Server에서 실시간 데이터 통신을 가능하게 해주는 기능
subscription 사용법
// resolvers.js
import { PubSub } from "apollo-server-express"
const pubsub = new PubSub();
export default {
Subscription: {
// "Updates"란 이름으로 NEW_MESSAGE 감시센터 만들기
Updates: {
subscribe: () => pubsub.asyncIterator(NEW_MESSAGE),
},
},
Query: {
// "Send"쿼리로 사용자에게 text입력 받아, Updates 감시센터로 내용 보내기
Send: (_, { text } ) => pubsub.publish(NEW_MESSAGE, { Updates: text });
}
};
// "Updates" subscription으로 "Send"쿼리를 통해 보내진 text를 실시간으로 받아볼 수 있다!
// typeDefs.js
import { gql } from "apollo-server-core";
// Update 와 Send 의 형식 지정해주기
export default gql`
type Subscription {
Updates: String!
}
type Query {
Send(text: String!): String
`;
반응형