웹소켓 사용시 접속한후 일정시간이 지나면 클라언트에게 접속종료 이벤트가 즉시 날라와야하지만, 바로 날라오지는 않아
이벤트 처리시 애를 먹는 경우가 간간히 있다.
따라서 이때는 푸시서버에서 처럼 HeartBeat 체크를 해주어야 한다.
아래 코드는 setHeartbeatTime 을 넣어 HeartBeat 체크를 한 경우이다.
@Configuration @EnableWebMvc @EnableWebSocket public class WsConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry wshrRegistry) { wshrRegistry.addHandler(getWsMsgHandler(), "/ws/msgHandler.sockjs") .addInterceptors(new WsHandshakeInterceptor()) .withSockJS().setHeartbeatTime(2000); } @Bean public WsMsgHandler getWsMsgHandler() { return new WsMsgHandler(); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } }