Browse Source

feat:ws链接断开后清空用户登录信息

master
白凤吉 2 months ago
parent
commit
d259b1ef6e
  1. 15
      src/main/java/com/iflytop/gd/app/ws/server/WebSocketServer.java

15
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<Session> 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

Loading…
Cancel
Save