websocket

detached
王宇航 2024-01-08 16:36:40 +08:00
parent a7f8c1b6bf
commit f7638e3b5e
2 changed files with 37 additions and 13 deletions

View File

@ -1,27 +1,18 @@
package com.ruoyi.web.controller.system;
import com.alibaba.fastjson.JSON;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.CxSelect;
import com.ruoyi.common.core.domain.entity.PrimaryRadarData;
import com.ruoyi.common.core.domain.entity.SysIdentifier;
import com.ruoyi.common.core.domain.entity.SysRadar;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.json.JSONObject;
import com.ruoyi.common.json.JSONObject.JSONArray;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.bean.ModbusResponse;
import com.ruoyi.common.utils.modbus.ModbusUtils;
import com.ruoyi.framework.web.domain.server.Sys;
import com.ruoyi.system.service.ISysRadarService;
import com.ruoyi.system.service.PrimaryRadarDataService;
import com.ruoyi.system.service.impl.IdentifierStatusServiceImpl;
import com.ruoyi.web.core.config.RadarStatusWebSocket;
import com.serotonin.modbus4j.ModbusMaster;
import com.serotonin.modbus4j.exception.ErrorResponseException;
import com.serotonin.modbus4j.exception.ModbusTransportException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -36,7 +27,7 @@ import java.util.*;
import java.util.concurrent.CompletableFuture;
/**
*
*
*
* @author ruoyi
*/
@ -86,7 +77,7 @@ public class RadarStatusController
modbusResponse = ModbusUtils.holdingRegister();
System.out.println(modbusResponse);
RadarStatusWebSocket.sendToAll(modbusResponse.toString());
}
} catch (Exception e) {
System.err.println("从串口读取失败:" + e.getMessage());

View File

@ -0,0 +1,33 @@
package com.ruoyi.web.core.config;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
@ServerEndpoint("/websocket")
public class RadarStatusWebSocket {
private static Set<Session> sessions = new HashSet<>();
@OnOpen
public void onOpen(Session session) {
sessions.add(session);
}
@OnClose
public void onClose(Session session) {
sessions.remove(session);
}
public static void sendToAll(String message) {
for (Session session : sessions) {
try {
session.getBasicRemote().sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}