웹소켓과 STOMP 차이
웹소켓은 세션 연결 및 종료, 메시지 전송을 WebSocket 핸들러를 통해 직접 구현해야 한다.
만약 단체 채팅방의 경우, 직접 각채팅방에 접속해있는 유저 식별 및 그에 맞게 전송해야 한다.
위 로직을 구현하는게 순수 웹소켓만으로는 복잡해진다.
STOMP는 웹소켓과 다르게 , 목적지기반 메시지 라우팅을 지원한다.

클라이언트와 서버가 특정 주제(topic) 또는 경로를 기반으로 메시지를 교환할 수 있다.
클라이언트 1번이 room 1, 2, 3번에 들어가있다. -> 클라이언트 1번이 특정 room들을 구독한다.
만약 room 1번에 메시지가 생성될 경우 해당 room에 들어가있는 모든 유저에게 메시지를 전송하는게 편하다.
메시지 교환 절차
클라이언트에서 지정된 특정 roomId에 메시지를 발행하면 broker에 의해서 해당 roomId 채널에 메시지가 전달 된다.
동시에 roomId를 구독하고 있는 클라이언트 들에게 실시간으로 메시지가 전달된다.
Last updated