STOPM 란 ?
- STOMP (Simple (or Streming) Text Oriented Messaging Protocol)는 메시징 시스템에서 사용하는 프로토콜로,
클라이언트와 서버 간의 메시지 전송을 위해 설계되었다. 주로 웹 소켓과 함께 사용되어 실시간 통신을 가능하게 한다. 1
STOMP는 텍스트 기반 프로토콜로, 메시지를 전송하기 위한 간단한 명령 세트를 제공한다.
STOMP의 주요 개념 및 동작 방식
1. Connect and Disconnect (연결 및 연결 해제)
- 클라이언트는 서버에 연결하기 위해 'CONNECT' 프레임을 전송
- 서버는 연결이 수락되면 'CONNECTED' 프레임을 응답
- 연결 해제는 'DISCONNECT' 프레임을 사용
2. Send (메시지 전송)
- 클라이언트는 서버로 메시지를 보내기 위해 'SEND' 프레임을 사용
- 메시지는 특정 목적지(destination)를 가지며, 이 목적지는 구독자가 메시지를 수신할 때 사용된다.
3. Subscribe and Unsubscribe (구독 및 구독 취소)
- 클라이언트는 특정 목적지의 메시지를 수신하기 위해 'SUBSCRIBE' 프레임을 전송
- 구독을 취소은 'UNSUBSCRIBE' 프레임 사용
4. Message (메시지)
- 서버는 클라이언트에게 메시지를 전송할 때 'MESSAGE' 프레임 사용
- 'MESSAGE' 프레임은 클라이언트가 구독한 목적지로부터의 메시지를 포함
5. Acknowledge and Nacknoewledge (확인 및 비확인)
- 클라이언트는 메시지를 성공적으로 처리했음을 나타내기 위해 'ACK' 프레임을 전송할 수 있다.
- 메시지를 처리할 수 없을 경우 'NACK' (Negative Acknowledgement)프레임을 전송할 수 있다.
STOMP 프레임 구조
- COMMAND : 프레임의 종류를 나타낸다. ('CONNECT', 'SEND', 'SUBSCRIBE' 등)
- Headers : 명령과 관련된 추가 정보를 제공한다. (각 헤더는 'key:value' 형식으로 작성)
- Body : 메시지의 내용이 포함 (빈 줄 다음에 위치하며, '@' 문자가 프레임의 끝을 나타낸다)
STOMP 동작 예시
1. 클라이언트가 서버에 연결 2. 서버가 연결 수락 3. 클라이언트가 특정 목적지 구독
4. 서버가 클라이언트에게 메시지 전송 5. 클라이언트가 서버로 메시지 전송
- 웹 브라우저와 웹 서버 간의 양방향 실시간 통신을 가능하게 하는 기술 [본문으로]
'Java > Spring' 카테고리의 다른 글
[Spring Boot] WebSocket 이란 (0) | 2024.06.18 |
---|---|
[Security] JWT란 ? (0) | 2024.06.18 |
Redis Config 설정 (로컬환경에서의 설정 방법) (0) | 2024.06.17 |
accessToken 재발행 오류 처리(Filter 내에서의 오류 처리) (0) | 2024.04.19 |
RedisUtil (get, set 설정) (0) | 2024.04.16 |