From f0af0354af8b763d2b0203e5cc97821fb4d51cdf Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 18 Apr 2022 11:18:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20websocket=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../factory/DeWebSocketHandlerDecorator.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/io/dataease/websocket/factory/DeWebSocketHandlerDecorator.java b/backend/src/main/java/io/dataease/websocket/factory/DeWebSocketHandlerDecorator.java index dfe5dad19a..bb3f8f4f4d 100644 --- a/backend/src/main/java/io/dataease/websocket/factory/DeWebSocketHandlerDecorator.java +++ b/backend/src/main/java/io/dataease/websocket/factory/DeWebSocketHandlerDecorator.java @@ -6,6 +6,8 @@ import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.WebSocketHandlerDecorator; +import java.util.Optional; + public class DeWebSocketHandlerDecorator extends WebSocketHandlerDecorator { @@ -16,17 +18,22 @@ public class DeWebSocketHandlerDecorator extends WebSocketHandlerDecorator { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { - String name = session.getPrincipal().getName(); - Long userId = Long.parseLong(name); - WsUtil.onLine(userId); + Optional.ofNullable(session.getPrincipal()).ifPresent(principal -> { + String name = principal.getName(); + Long userId = Long.parseLong(name); + WsUtil.onLine(userId); + }); super.afterConnectionEstablished(session); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception { - String name = session.getPrincipal().getName(); - Long userId = Long.parseLong(name); - WsUtil.offLine(userId); + Optional.ofNullable(session.getPrincipal()).ifPresent(principal -> { + String name = principal.getName(); + Long userId = Long.parseLong(name); + WsUtil.offLine(userId); + }); + super.afterConnectionClosed(session, closeStatus); }