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();
    }
}
태그 ,

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다