Sessions connected to a STOMP endpoint are expected to receive some
client messages. Having received none after successfully connecting
could be an indication of proxy or network issue. This change adds
periodic checks to see if we have not received any messages on a
session which is an indication the session isn't going anywhere
most likely due to a proxy issue (or unreliable network) and close
those sessions.
This is a backport for commit:
a3fa9c9797
Issue: SPR-11884
@ -77,12 +87,16 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@@ -77,12 +87,16 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@ -227,12 +241,12 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@@ -227,12 +241,12 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
logger.error("Failed to close session id '"+session.getId()+"': "+t.getMessage());
logger.error("Failed to close session id '"+holder.getSession().getId()+"': "+t.getMessage());
}
}
}
@ -251,7 +265,7 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@@ -251,7 +265,7 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@ -296,7 +310,13 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@@ -296,7 +310,13 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@ -307,13 +327,12 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@@ -307,13 +327,12 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
logger.error("sessionId not found in message "+message);
@ -350,6 +369,49 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@@ -350,6 +369,49 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@ -369,4 +431,41 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,
@@ -369,4 +431,41 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler,