Browse Source

fix:Endpoint不能直接注入bean

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

14
src/main/java/com/iflytop/gd/app/ws/server/WebSocketServer.java

@ -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

Loading…
Cancel
Save