프로젝트를 위한 WebSocket 공부

minsuk·2024년 12월 9일
0

프로젝트일지

목록 보기
2/4

데이터흐름

기존의 http 요청을 통해 클라이언트가 서버에 데이터를 요청하면 서버에서 데이터를 받아옵니다.

그러나, 이러한 경우에는 클라이언트가 서버에 요청한 경우에만 데이터를 받아옵니다.

그렇기에, 클라이언트와 서버가 지속적으로 소통을 하려면 클라이언트와 서버를 핸드셰이크라는 과정을 과정을 통해서 웹 소켓 형태가 된다. 그래서 클라이언트와 서버가 실시간 통신 상태가 된다.

but. WebSocket만 쓰면 여러 클라이언트가 있는 상황에서 메시지를 정리하고 나눠주는 게 어려워짐

  • stomp라는 메시지 기반 프로토콜을 통해서 전달하는 것도 추가하여서 클라이언트 간 소통을 쉬이 하도록 함

하는 과정

  1. 클라이언트가 주소의 메시지를 받음(/topic/chat) (subscribe)
  2. 메시지 보내기(/app/message)(Send)
  3. 서버가 메시지 전달(topic/chat)

클라이언트가 어떤 주제를 구독할지 정의함 / 클라이언트가 특정 경로로 발행하는 것으로 지원 / 메세지 형식 정의

메세지 구조

  1. 명령(메시지의 동작을 정의 (예: CONNECT, SEND, SUBSCRIBE, MESSAGE)
  2. 헤더(
    메시지의 속성을 정의 (예: destination, content-type)
  3. 본문 ( 실제 메시지 내용)

Spring Boot에서 처리하는 방식

  1. 의존성 추가.
  2. 웹소켓 설정 구성 파일과 구성 파일 요소 설명
  • 웹소켓 설정은 configuration으로 설정. 메시지 처리는 controller, 클라이언트 코드는 프론트 단에서 처리..
profile
아무거나 준비중..

0개의 댓글