inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

웹소켓/STOMP 채팅서비스(spring, vue, redis)

stomp 마무리

Stomp과 웹소켓 프로토콜

140

우유소보루

작성한 질문수 25

0

  1. connect할 때 웹소켓은 ws프로토콜 stomp는 http프로토콜을 사용하는건가요?

  2. 연결 후 메시지를 주고 받을 때 웹소켓은 ws프로토콜 stomp도 ws프로토콜을 사용하는건가요?

spring-boot websocket stomp-websocket pubsub vue-3

답변 2

0

bradkim

1.웹소켓 stomp모두 connect할때도 프로토콜은 ws프로토콜이라고 보시면 되겠습니다. 다만, 초기 connect시에는 http요청메시지를 포함하여 보낼수 있습니다. 이를 핸드셰이크과정이라고 부르는데, 이 핸드셰이크가 끝나면 바로 ws프로토콜로 전환됩니다. 그래서, 이를 두고 http프로토콜을 통한 connect라고 보기는 부적절합니다.

정리하자면 초기 연결시에는 http요청을 활용하되, 결국은 ws프로토콜을 통해 연결이 맺어진다 보면되겠습니다. 초기에 http요청을 활용하기 때문에, header에 토큰등을 담아서 인증처리 등을 수행할수 있습니다.

 

2.연결이 맺어진 이후에는 별도의 http메시지 없이, 모두 ws프로토콜입니다. 이때에는 http메시지가 없기에 간결하고 빠르게 메시지를 주고 받습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 우유소보루님.

웹소켓과 STOMP에 관련된 프로토콜 사용에 관한 질문에 대해 답변드리겠습니다.

  1. 웹소켓과 STOMP의 초기 연결 프로토콜:

    • 웹소켓은 ws:// 또는 보안 버전인 wss:// 프로토콜을 사용하여 서버와의 연결을 시작합니다. 일반적인 HTTP(S) 요청과 다르게, 초기 연결 이후에는 지속적인 연결이 유지됩니다.
    • 반면, STOMP는 웹소켓 상에서 동작하는 서브 프로토콜입니다. STOMP 자체는 메시지 전송을 위한 프로토콜로, SEND, SUBSCRIBE, CONNECT, DISCONNECT 등의 명령어를 사용하여 메시지를 주고받습니다. 따라서 STOMP도 웹소켓의 ws:// 또는 wss:// 프로토콜을 통해 초기 연결을 수행합니다.
  2. 연결 후 프로토콜 사용:

    • 웹소켓을 통해 메시지가 주고받을 때 언제나 ws:// 혹은 wss:// 프로토콜을 이용합니다. 연결이 한 번 성립되면, 클라이언트와 서버 사이에서 실시간 데이터 통신이 지속됩니다.
    • STOMP 프로토콜은 웹소켓 프로토콜 위에서 메시징의 형식과 행동 양식을 정하는 역할을 합니다. 즉, STOMP 메시지는 웹소켓 데이터 프레임으로 전달되지만, 그 안에 STOMP 명령어와 메시지 헤더, 바디 형식이 포함됩니다.

이처럼 STOMP는 웹소켓 연결 위에서 사용하는 메시지 프로토콜이라고 이해하시면 되겠습니다. 웹소켓이 기본적인 연결과 데이터 전달을 담당하고, STOMP는 그 위에서 효과적인 메시지 교환을 돕는 역할을 합니다.

아래 URL에서 관련된 내용을 더 찾아보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ERD 질문

0

54

2

StompHandler 관한 질문

0

80

2

리프레시 토큰은 알아서 구현하면 되는건가요??

0

81

2

cors, csrf 직접 구현

0

65

1

JWT 필터구현

0

98

2

강의 잘듣고 있습니다. 혹시 다음 강의 계획은 없으신가요?

0

58

1

STOMP 동작 과정 질문

0

48

1

chain.doFilter()

0

45

1

자바 21로 소스 작성해도 되나요?

0

60

2

메시지 브로커 선택에 관한 질문

0

65

2

WebSocket과 Spring Security 질문

0

81

2

추가 커스텀 구현 질문 있습니다.

0

61

2

connect와 동시에 구독하는데 구독 검증이 꼭 필요한가요?

0

97

2

저도 동일한 질문인데

0

78

3

token이 필요한 엔드포인트에 의도적으로 토큰 누락시 대처

0

67

2

수업자료가 왜 다 나눠져있나요?

0

78

2

메시지 전송 시 검증

0

61

2

JWT 생성 시 subject 설정에 대한 질문

0

158

3

StompHandler 질문 있습니다.

0

82

2

앱 서비스일 경우

0

84

2

웹소켓 서버 재배포시 고려해야 할 상황 질문

0

107

2

배포 오류 질문

0

124

2

/connect 경로에 대한 토큰 검증의 필요성

0

77

1

JwtTokenProvider 작성중 오류 발생으로 문의드립니다.

0

97

2