GraphQL / Apollo Server 란?
[Node.js] GraphQL, Apollo 란? / 사용법 ( GraphQL 서버 만들기 )
GraphQL 이란? ( GraphQL API ) 브라우저와 서버가, Query, Mutation, TypeDefs, resolvers를 사용해 CRUD 요청, 응답을 주고받는 방식 GraphQL의 필요성 기존 서비스는 보유한 데이터를 설명하고, 클라이언트는..
defineall.tistory.com
실시간 통신이란?
서버의 데이터가 변경되는 것을, 클라이언트가 감시(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
`;
반응형
GraphQL / Apollo Server 란?
[Node.js] GraphQL, Apollo 란? / 사용법 ( GraphQL 서버 만들기 )
GraphQL 이란? ( GraphQL API ) 브라우저와 서버가, Query, Mutation, TypeDefs, resolvers를 사용해 CRUD 요청, 응답을 주고받는 방식 GraphQL의 필요성 기존 서비스는 보유한 데이터를 설명하고, 클라이언트는..
defineall.tistory.com
실시간 통신이란?
서버의 데이터가 변경되는 것을, 클라이언트가 감시(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
`;
반응형