이야기앱 세상

Spring에서 WebSocket 사용시 HttpSession에 저장된 값 사용하기 본문

IT/Spring

Spring에서 WebSocket 사용시 HttpSession에 저장된 값 사용하기

storya 2017. 7. 4. 14:41

Spring에서 WebSocket 사용시 HttpSession에 저장된 값 사용하기


Spring4에서 WebSocket를 사용할 때는 아래와 같이 maven dependency를 추가해줌

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>4.0.9.RELEASE</version>
</dependency>

servlet-context.xml에서 websocket:handlers 태그에 websocket:mapping 아래 websocket:handshake-interceptors에
HttpSessionHandshakeInterceptor를 추가하면 WebSocketHandler에 접근하기 전에 HttpSession에 접근하여 저장된 값을
읽어 들여 WebSocketHandler에서 사용할 수 있도록 처리함

<websocket:handlers>
<websocket:mapping handler="chatHandler" path="/chat-ws.do"/>
   <websocket:handshake-interceptors>
<beans:bean class="org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor"/>
   </websocket:handshake-interceptors>
</websocket:handlers>

구현된 WebSocketHandler 클래스의 아래 메서드에서 테스트
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
Map<String,Object> map = session.getAttributes();
String userId = (String)map.get("userId");
System.out.println("로그인 한 아이디 : " + userId);
}


반응형
Comments