일단 SockJS를 사용하면 클라이언트와 서버간의 하트비트 메시지를 25초 간격으로 주고 받을 수 있도록 내부 로직이 구현이 되어있다.
그래서 우리는 SockJS를 쓰는것 만으로도 하트비트 메시지가 저절로 주고 받을 수 있게 되는 것 이다.
이제 하트비트 메시지를 잘 사용하고 있는지 확인해보자
우선 첫번째로 개발자 도구 창에서 확인할 수 있다.
네트워크 -> websocket을 클릭하면 아래의 사진과 같이 나오는데 25초 간격으로 h(heartbeat) 메시지를 주고받는 것을 확인할 수 있다.
하지만 이걸론 뭔가 아쉽다.
정말로 주고받고 있는건지 확신이 안드는거 같으니 SockJS의 로그를 찍어보자
우선 application.properties에 아래의 코드를 추가해주자.
logging.level.org.springframework.web.socket.sockjs=TRACE
그리고 서버를 실행 시키고 채팅방에 접속한다음 콘솔창을 확인해보자
사진과 같이 SockJS가 heartbeat 메시지를 주고 받고 있다는 로그가 찍히는걸 확인할 수 있다.
그리고 클라이언트에서 직접 console.log를 찍어보는 방법도 있다.
let sock = new SockJS("/ws-stomp");
let ws = Stomp.over(sock);
(생략)
sock.onheartbeat = function() {
console.log('heartbeat');
};