|
|
@ -1,9 +1,7 @@ |
|
|
|
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; |
|
|
|
|
|
|
@ -14,10 +12,7 @@ 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<>()); |
|
|
|
|
|
|
|
public static void sendMessageToClients(String message) { |
|
|
@ -45,13 +40,8 @@ public class WebSocketServer { |
|
|
|
|
|
|
|
@OnClose |
|
|
|
public void onClose(Session session) { |
|
|
|
try { |
|
|
|
sessions.remove(session); |
|
|
|
log.info("连接已关闭,清空当前登录用户,sessionId={}", session.getId()); |
|
|
|
deviceStateService.getDeviceState().setCurrentUser(null); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("WS链接断开清空登录信息错误", e); |
|
|
|
} |
|
|
|
sessions.remove(session); |
|
|
|
log.info("连接已关闭,sessionId={}", session.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
@OnError |
|
|
|