STOMP

김채영·2024년 8월 22일

라이브러리

목록 보기
2/2

STOMP(Simple Text Oriented Messaging Protocol)

  • 메시지 브로커와 클라이언트 간의 통신을 위해 설계된 프로토콜
  • TCP 또는 WebSocket 같은 양방향 네트워크 프로토콜 기반으로 동작
  • 주로 메시징 시스템에서 사용되며, 텍스트 기반의 프로토콜로서 사람이 읽기 쉽게 설계
  • WebSocket과 함께 사용되며 브라우저와 서버 간의 실시간 메시지 교환이 가능

특징

  • 텍스트 기반 프로토콜 : 모든 메시지는 텍스트로 표현되어 있으며, 이해하고 디버깅하기 쉽다.
  • 독립적 플랫폼 : 다양한 언어와 플랫폼에서 구현이 가능하며, 클라이언트와 서버 사이의 통신을 단순하게 처리
  • 메시징 시스템과의 호환성 : Apache ActiveMQ, RabbitMQ, JBoss Messaging과 같은 여러 메시징 시스템과 호환
  • 프레임 구조 : '프레임'이라는 구조로 전송됨(명령, 헤더, 바디)

메시지 브로커

  • 분산 시스템 간에 데이터를 교환하기 위한 소프트웨어
  • 다양한 애플리케이션 간에 메시지를 송수신하고, 이를 관리하며 전송 중의 안정성을 보장하는 중요한 역할을 한다.

유형

  • 큐 기반 : 메시지가 큐에 저장되고, 수신자가 이를 소비하는 형태
  • 발송(pub)/구독(sub) 기반 : 메시지를 특정 주제로 게시하고, 해당 주제를 구독한 모든 수신자가 메시지를 받는 형태

연결 흐름

  • 클라이언트 연결
  • 메시지 전송
  • 메시지 처리
  • 메시지 브로드캐스트
  • 클라이언트 수신
   클라이언트 A            서버(WebSocket + STOMP)             클라이언트 B
   ────────────             ────────────────────             ────────────
   1. 연결 요청  ──────────>   2. 엔드포인트 연결          ────────────> 3. 주제 구독
   4. 메시지 전송 ───────────> 5. 메시지 처리 및 브로드캐스트 <───────────> 6. 메시지 수신

SpringBoot WebSocket STOMP 의존성

//웹소켓을 사용하기 위한 라이브러리

dependecies {
	implementation 'org.springframework.boot:spring-boot-starter-websocket'
}

참고자료

https://velog.io/@hiy7030/chatting-1
https://velog.io/@murphytklee/Spring-WebSocket-STOMP
https://velog.io/@ktf1686/Spring-WebSocket%EC%9C%BC%EB%A1%9C-%EC%B1%84%ED%8C%85-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-STOMP%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%B1%84%ED%8C%85-%EA%B3%A0%EB%8F%84%ED%99%94

profile
백엔드 개발⭐

0개의 댓글