|
|
@ -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<Session> 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()); |
|
|
|
} |
|
|
|
|
|
|
|