WebSocket이 열리지 않는 문제

pickylemon·2024년 6월 16일

Exception 모음

목록 보기
25/31

상황

  • Spring Framework 5.3에서 WebSocket API만으로 댓글 알림을 구현하려는 상황
  • 브라우저에서 확인시 WebSocket 연결 자체에 실패하는 현상이 반복적으로 발생
  • 즉, 서버와 연결 자체가 안되는 상황

문제 및 해결

  • servlet-context.xml에 WebSocketHandler를 정의할 때 지정한 path가 Dispatcher Servlet에 의해 스캔되지 못했기 때문

  • 현재 web.xml에 등록되어 있는 Dispatcher Servlet은 하나인 상태이고, *.do url에 대해서만 식별하고 있다.

  • 해결 : WebSocketHandler의 path를 /webSocket.do와 같이 Dispatcher Servlet의 url pattern과 맞춰주니 정상적으로 WebSocket connection이 생성되었다.

<!-- servlet-context.xml -->


	<!-- WebSocket Handler-->
	<bean id="webSocketHandler" class="com.portfolio.www.alarm.WebSocketHandler" />
	<websocket:handlers>
	  <websocket:mapping handler="webSocketHandler" path="/websocket.do"/>
	  <!-- webSocketSession에 HttpSession을 올려야해서 필요 -->
	  <websocket:handshake-interceptors>
	    <bean class="org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor"/>
	  </websocket:handshake-interceptors>
	</websocket:handlers>
<!-- web.xml -->
	<!-- Spring servlet start -->
	<servlet>
		<servlet-name>pf</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>pf</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
profile
안녕하세요

0개의 댓글