WebSocket 사용시 연결을 지속해야 하는 경우

웹소켓 사용시 접속한후 일정시간이 지나면 클라언트에게 접속종료 이벤트가 즉시 날라와야하지만, 바로 날라오지는 않아
이벤트 처리시 애를 먹는 경우가 간간히 있다.
따라서 이때는 푸시서버에서 처럼 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();
    }
}
태그 ,

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.