diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java index 6e80e7c0e12..8067dcf58d6 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.java @@ -305,9 +305,12 @@ public class SubProtocolWebSocketHandler implements WebSocketHandler, */ @Override public void handleMessage(WebSocketSession session, WebSocketMessage message) throws Exception { + WebSocketSessionHolder holder = this.sessions.get(session.getId()); + if (holder != null) { + session = holder.getSession(); + } SubProtocolHandler protocolHandler = findProtocolHandler(session); protocolHandler.handleMessageFromClient(session, message, this.clientInboundChannel); - WebSocketSessionHolder holder = this.sessions.get(session.getId()); if (holder != null) { holder.setHasHandledMessages(); }