From d259b1ef6e6ac1517c97a5940218c5ffdc16d9c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Sun, 15 Jun 2025 10:08:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:ws=E9=93=BE=E6=8E=A5=E6=96=AD=E5=BC=80?= =?UTF-8?q?=E5=90=8E=E6=B8=85=E7=A9=BA=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iflytop/gd/app/ws/server/WebSocketServer.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/iflytop/gd/app/ws/server/WebSocketServer.java b/src/main/java/com/iflytop/gd/app/ws/server/WebSocketServer.java index 2281004..bd27ede 100644 --- a/src/main/java/com/iflytop/gd/app/ws/server/WebSocketServer.java +++ b/src/main/java/com/iflytop/gd/app/ws/server/WebSocketServer.java @@ -1,7 +1,9 @@ package com.iflytop.gd.app.ws.server; +import com.iflytop.gd.app.service.device.DeviceStateService; import jakarta.websocket.*; import jakarta.websocket.server.ServerEndpoint; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -12,7 +14,9 @@ import java.util.Set; @Slf4j @ServerEndpoint("/ws") @Component +@RequiredArgsConstructor public class WebSocketServer { + private final DeviceStateService deviceStateService; private static final Set sessions = Collections.synchronizedSet(new HashSet<>()); @@ -22,7 +26,7 @@ public class WebSocketServer { try { session.getBasicRemote().sendText(message); } catch (Exception e) { - log.error("发送给客户端失败 sessionId={}", session.getId(), e); + log.error("WS发送给客户端失败 sessionId={}", session.getId(), e); } } } @@ -41,8 +45,13 @@ public class WebSocketServer { @OnClose public void onClose(Session session) { - sessions.remove(session); - log.info("连接已关闭,sessionId={}", session.getId()); + try { + sessions.remove(session); + log.info("连接已关闭,清空当前登录用户,sessionId={}", session.getId()); + deviceStateService.getDeviceState().setCurrentUser(null); + } catch (Exception e) { + log.error("WS链接断开清空登录信息错误", e); + } } @OnError