diff --git a/src/main/java/com/iflytop/sgs/app/ws/server/WebSocketServer.java b/src/main/java/com/iflytop/sgs/app/ws/server/WebSocketServer.java index acaf1c5..f1bb9fb 100644 --- a/src/main/java/com/iflytop/sgs/app/ws/server/WebSocketServer.java +++ b/src/main/java/com/iflytop/sgs/app/ws/server/WebSocketServer.java @@ -1,8 +1,13 @@ package com.iflytop.sgs.app.ws.server; +import com.iflytop.sgs.app.model.bo.status.device.DeviceState; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.constant.WebSocketMessageType; import jakarta.websocket.*; import jakarta.websocket.server.ServerEndpoint; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Collections; @@ -12,9 +17,13 @@ import java.util.Set; @Slf4j @ServerEndpoint("/ws") @Component +@RequiredArgsConstructor public class WebSocketServer { private static final Set sessions = Collections.synchronizedSet(new HashSet<>()); + private final DeviceStateService deviceStateService; + private final WebSocketSender webSocketService; + public static void sendMessageToClients(String message) { synchronized (sessions) { @@ -31,6 +40,7 @@ public class WebSocketServer { @OnOpen public void onOpen(Session session) { sessions.add(session); + webSocketService.push(WebSocketMessageType.STATUS, deviceStateService.getDeviceState()); log.info("新连接加入,sessionId={}", session.getId()); }