Category: Spring WebSocket

0

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 에 메시지를 전송해준다.

0

Spring Web Socket - Chat 프로그램 만들기 1

Spring boot Web Socket - Chat 프로그램 만들기 1참고 https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/html/websocket.html https://daddyprogrammer.org/post/4731/spring-websocket-chatting-server-redis-pub-sub/ Message BrokerMessage Broker 는 Publisher 로부터 전달 받은 Message 를 Subscriber 로 전달하는 중간 역할을 하며 응용 소프트웨어 간에 메시지를 교환할 수 있게 한다. 이때, 메시지가 적재되는 공간은 Message Queue 라고 하며 메시지 그룹을 Topic 이라고 한다. Message Broker 는 데이터를 보내고 처리하고 삭제한다. Message Interceptor 정의하기 ChannelInterceptor 는 Message 를 MessageChannel 로 보내기 전과 Message 가 MessageChannel 로 보낸 후 추가적일 로직을 수행할 수 있게 도와주는 Interface 다. ChannelInterceptor 인터페이스를 구현해 Socket 통신 상태를 로그로 찍어 확인한다.