ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • STOMP 이론
    토이프로젝트/웹소켓채팅 2022. 1. 9. 21:33

    STOMP 란 ? 

    Simple (or Streaming) Text Orientated Messaging Protocol의 약자로 WebSocket위에 존재하는 프로토콜이다.

    Websocket과 비교해서 SpringMVC가 HTTP에 프로그래밍 모델을 제공하는 것처럼 Application수준의 사용을 위한       

    프로그래밍 모델을 제공한다.

         

    이게 무슨 말이냐면 @MessageMapping 어노테이션을 통해 특정 요청에 대한 처리를 가능하게 한다는 것이다.

    이것을 Spring MVC에 비유하자면  @RequestMapping을 통해 접속 URL에 따라클라이언트 요청을 처리하게

    되는데,  STOMP도 이것을 가능하게 한다는 것이다.

         

         STOMP의 구조를 한번 알아보자

       

    CLIENT1이 /chatRoom/1을 가지고  SUBSCRIBE 을 신청하면 SERVER에서 해당 CLIENT를 해당 URL 속에

    구독권을 발부 한다.   마찬가지로 CLIENT2도 같은 CONNECT URL이고 CLIENT3는 /chatRoom/2를 가지고

    구독권을 발부 받는다. 

    이 후,

    CLIENT1가 메시지를 PUBLISH(출판) 하면 서버에서 받게 되고 , 이 후 SERVER에서 MESSAGE객체를 다시

    해당 URL에 대한 구독권한이 있는 사람들에게 메시지를 전송한다. 이 과정에서는 보낸사람도 받게 되므로

    별도의 처리가 필요하며, CLIENT3는 해당 URL에 구독권한이 없으므로 메시지를 전송 받지 못한다.

     

     STOMP는 이렇게 채팅방 구조를 가지는 통신에 매우 유용하다.

    전송 가능한 메시지는 Text 와 Binary 메시지이며, 이전 메시지에 대한 기록은 따로 저장이 필요하다(휘발성)

    그리고,  STOMP 기본 broker(메시지를 전달해주는 서버) 역할이 자바내에서 활동하기 때문에 서버 클러스터를

    사용하는 경우는 외부 브로커를 사용하여야 한다. (RabbitMQ, ActiveMQ 등등) 

    '토이프로젝트 > 웹소켓채팅' 카테고리의 다른 글

    WebSocket 이론  (0) 2022.01.08
Designed by Tistory.