Browse Source

ws连接发送设备状态信息

master
王梦远 2 months ago
parent
commit
1d0099a031
  1. 10
      src/main/java/com/iflytop/sgs/app/ws/server/WebSocketServer.java

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

Loading…
Cancel
Save