Spring Web Socket - STOMP (Simple Text Oriented Message Protocol)
목차 Spring Web Socket - Chat 프로그램 만들기 1 Spring Web Socket - STOMP (Simple Text Oriented Message Protocol) 네트워크 - Web Socket 참고 https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/html/websocket.html https://www.baeldung.com/websockets-spring STOMP (Simple/Stream Text Oriented Message Protocol) WebSocket 기반 프로토콜이며 Client 와 Server 가 negotiate 하기 위한 sub-protocol 이 정의 돼 있다. STOMP 은 메세징 전송을 효율적으로 하기 위해 탄생한 Text 지향 프로토콜 이며 Message Payload에는 Text or Binary 데이터를 포함 해 전송할 수 있다. 또한 sub-protocol 이 정의 돼 있어 Client 에서 서버로 전송할 메시지 유형, 형식, 내용등이 정의 돼 있다. pub/sub 구조로 되어있어 메세지를 전송하고 메세지를 받아 처리하는 부분이 확실히 정해져 있기 때문에 개발자 입장에서 명확하게 인지하고 개발할 수 있는 이점이 있다. 또한 STOMP를 이용하면 메세지의 헤더에 값을 줄 수 있어 헤더 값을 기반으로 통신 시 인증 처리(ChannelInterceptor) 를 구현하는 것도 가능하며 STOMP 스펙에 정의한 규칙만 잘 지키면 여러 언어 및 플랫폼 간 메세지를 상호 운영할 수 있다. 만약 Spring에서 지원하는 STOMP를 사용하면 Spring WebSocket 어플리케이션은 STOMP Broker로 동작하게 된다. STOMP (Simple Text Oriented Message Protocol) 구성 SimpAnnotationMethod Client 로 부터 전달 받은 Message 를 처리한다. clientInboundChannel WebSocket client 로부터 전달 받은 메시지를 전송해준다. clientOutboundChannel Server 메시지를 WebSocket Client 에 전송해준다. brokerChannel Server 내부에서 사용하는 Channel, Message Broker 에 메시지를 전송해준다.