lxw
2023-04-24 bb6f09aeedfd58b871ad0afa08392056da39e77f
src/main/java/com/whyc/webSocket/SendAlarmDataSocket.java
@@ -1,5 +1,6 @@
package com.whyc.webSocket;
import com.whyc.config.WebSocketConfig;
import com.whyc.dto.Response;
import com.whyc.service.BattalarmDataService;
import com.whyc.service.DevalarmDataService;
@@ -7,13 +8,14 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpSession;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.util.HashMap;
import java.util.Map;
@Component
@ServerEndpoint(value = "/sendAlarmData",encoders = WebSocketEncoder.class)
@ServerEndpoint(value = "/sendAlarmData", encoders = WebSocketEncoder.class, configurator = WebSocketConfig.class)
public class SendAlarmDataSocket {
    private volatile Thread thread;
@@ -32,27 +34,36 @@
    private static PwrdevAlarmService pwrdevAlarmService;
    private Session session;
    private HttpSession httpSession;
    @Autowired
    public void setService(BattalarmDataService service){
        SendAlarmDataSocket.battalarmDataService = service;
    }
    @Autowired
    public void setService(DevalarmDataService service){
        SendAlarmDataSocket.devalarmDataService = service;
    }
    @Autowired
    public void setService(PwrdevAlarmService service){
        SendAlarmDataSocket.pwrdevAlarmService = service;
    }
    @OnOpen
    public void onOpen(Session session){
    public void onOpen(Session session, EndpointConfig config) {
        this.session=session;
        this.httpSession = (HttpSession) config.getUserProperties().get("httpSession");
    }
    @OnMessage
    public synchronized void onMessage(Session session, String uId){
        int userId = Integer.parseInt(uId);
        String lang = (String) this.httpSession.getAttribute("lang");
        thread = new Thread("Thread_sendAlarmData") {
            @Override
            public void run() {
                while (runFlag&&!isInterrupted()) {
                    Thread thread = currentThread();
@@ -60,7 +71,7 @@
                    try {
                        Map<String, Response> res=new HashMap<>();
                        //电池告警
                        Response battAlarm=battalarmDataService.getSendBattAlarmOfWebSocket(userId);
                        Response battAlarm = battalarmDataService.getSendBattAlarmOfWebSocket(userId, lang);
                        res.put("battAlarm",battAlarm);
                        //设备告警
                        Response devAlarm=devalarmDataService.getSendDevAlarmOfWebSocket(userId);