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. 클라이언트가 서버로 메시지 전송

  1. 웹 브라우저와 웹 서버 간의 양방향 실시간 통신을 가능하게 하는 기술 [본문으로]

+ Recent posts