We have a Spring connection through WebSockets, through which we pass a CONNECT frame:
CONNECT\naccept-version:1.2\nheart-beat:10000,10000\n\n\u0000
which confirms the handler, starts a new session and returns:
CONNECTED version:1.2 heart-beat:0,0
However, we want heartbeats to open the WebSocket. We do not use SockJS.
I went through the Spring message handler:
StompHeaderAccessor [headers={simpMessageType=CONNECT, stompCommand=CONNECT, nativeHeaders={accept-version=[1.2], heart-beat=[5000,0]}, simpSessionAttributes={}, simpHeartbeat=[ J@5eba717 , simpSessionId=46e855c9}]
After it receives a heart-beat (its own header), it sets what looks like a memory address simpHeartbeat=[ J@5eba717 , simpSessionId=46e855c9}]
It should be noted that after the broker authenticates:
Processing CONNECT session=46e855c9 (sessionId here is different from simpSessionId)?
When I started the earlier TRACE debugging, I saw a "Runout Planning ..." notification or something like that ... although I donβt see it now?
Any idea what is going on?
thanks
I found an explanation in the documentation :
SockJS Task Scheduler Statistics from the Task Flow Pool SockJS Scheduler, which is used to send a heartbeat. Note that when the heartbeat is discussed at the STOMP level, SockJS heartbeats are disabled.
Are SockJS heart beats different from STOMP heart attacks?