HTTP에서 웹소켓으로 전환되는 과정
·
WebSocket
HTTP에서 웹소켓으로 전환되는 과정이 어떻게 이루어지나요?1. 클라이언트가 서버에 WebSocket 업그레이드 요청 WebSocket 연결은 기존의 HTTP 요청을 통해 시작됩니다.클라이언트는 HTTP 요청의 Upgrade 헤더를 사용하여 WebSocket 연결로의 업그레이드를 서버에 요청합니다. HTTP 요청 예시GET /chat HTTP/1.1Host: example.com:80Upgrade: websocketConnection: UpgradeSec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==Sec-WebSocket-Version: 13 주요 헤더 설명: Upgrade: websocket: HTTP 프로토콜에서 WebSocket 프로토콜로 업그레이드를 요청.Connecti..
메세지 전송 실패-직렬화 문제
·
WebSocket/트러블 슈팅
문제 원인현재 프로젝트의 ChattingController에서 메시지를 전송할 때 발생하는 오류이다. 에러 메시지에서 SimpleMessageConverter는 String, byte[], 그리고 Serializable 형식의 페이로드만 지원한다고 나타나고 있으며, 전송된 객체가 ChatMessageRequestDto라는 DTO 클래스임을 알 수 있다. 원인 분석ChattingController에서 ChatMessageRequestDto 객체를 전송하기 위해 STOMP 메시지 변환기가 SimpleMessageConverter로 설정되어 있을 가능성이 있다.SimpleMessageConverter는 String, byte[], 또는 Serializable이 아닌 객체를 직렬화하여 전송할 수 없기 때문에, ..
Websocket 권한문제
·
WebSocket/트러블 슈팅
웹소켓에 엔트포인트를 알맞게 넣었지만 403이 뜨면서 권한문제로 에러가 발생하였다. 보통 Spring Security에서 권한을 제안하기에 requestMatcher를 통해 엔드포인트에도 권한을 부여해야한다.  requestMatcher에 엔트포인트 경로를 추가하여 권한을 부여한다. .requestMatchers란?접근 권한 제어requestMatchers로 특정 경로에 접근할 수 있는 권한을 제어할 수 있습니다. 예를 들어, /admin/** 경로는 관리자 권한만 접근하도록 설정할 수 있다. 인증/비인증 경로 설정로그인, 회원가입 등 인증이 필요 없는 페이지는 permitAll()로 설정하여 누구나 접근할 수 있도록 할 수 있다. 정확한 경로 매칭requestMatchers에 정규 표현식이나 와일드카드..