From fc4b5ca1ff1051516b1c541145fea6c96881dd05 Mon Sep 17 00:00:00 2001 From: zzc <1278921369@qq.com> Date: Sun, 17 Nov 2024 21:21:29 +0800 Subject: [PATCH] =?UTF-8?q?socket=E4=BB=A3=E7=A0=81=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=8F=8A=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/utils/WebSocketBusinessHandler.java | 47 ++++++++++++------- .../handler/PlusWebSocketHandler.java | 1 + 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java b/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java index 2401a5fcb..89425ca5a 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java @@ -8,12 +8,8 @@ import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.redis.utils.RedisUtils; -import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.common.websocket.constant.WebSocketConstants; import org.dromara.common.websocket.dto.WebSocketMessageDto; -import org.dromara.common.websocket.handler.PlusWebSocketHandler; import org.dromara.common.websocket.handler.WebSocketApi; -import org.dromara.common.websocket.holder.WebSocketSessionHolder; import org.dromara.common.websocket.utils.WebSocketUtils; import org.dromara.web.config.LastWebSocketParamDto; import org.dromara.web.controller.app.EqDeviceController; @@ -23,13 +19,8 @@ import org.dromara.web.domain.vo.EqEquipmentDetailVo; import org.dromara.web.domain.vo.EqEquipmentVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; import java.util.List; -import java.util.concurrent.TimeUnit; - -import static org.dromara.common.websocket.constant.WebSocketConstants.LOGIN_USER_KEY; /** * @ClassName : WebSocketHandler @@ -51,6 +42,8 @@ public class WebSocketBusinessHandler implements WebSocketApi { public void dealWithDetailMsg(LoginUser loginUser, String msg) { EqAppHomeBo bo = null; String sendMsg = ""; + R deviceMsg = null; + boolean isTrue = true; try { bo = JSON.parseObject(msg, EqAppHomeBo.class); LastWebSocketParamDto dto = new LastWebSocketParamDto(); @@ -59,11 +52,21 @@ public class WebSocketBusinessHandler implements WebSocketApi { RedisUtils.setCacheObject(Constants.WEBSOCKET_METHOD+loginUser.getUserId(),dto); } catch (Exception e) { log.error("参数错误"); - sendMsg = "参数错误"; + isTrue = false; + deviceMsg = R.fail("参数错误:"+e.getMessage()); } - R deviceMsg = controller.getDeviceMsg(bo); + if (isTrue){ + try { + deviceMsg = controller.getDeviceMsg(bo); + } catch (Exception e) { + deviceMsg = R.fail("设备详情获取失败:"+e.getMessage()); + log.error("设备详情获取失败"); + } + } + // EqEquipmentDetailVo data = deviceMsg.getData(); sendMsg = JSON.toJSONString(deviceMsg); + log.info("socket详情发送:{}",sendMsg); sendMsg(sendMsg,loginUser.getUserId()); } @@ -71,6 +74,7 @@ public class WebSocketBusinessHandler implements WebSocketApi { public void dealWithListMsg(LoginUser loginUser, String msg) { EqAppHomeBo bo = null; String sendMsg = ""; + boolean isTure = true; try { bo = JSON.parseObject(msg, EqAppHomeBo.class); LastWebSocketParamDto dto = new LastWebSocketParamDto(); @@ -80,12 +84,23 @@ public class WebSocketBusinessHandler implements WebSocketApi { } catch (Exception e) { log.error("参数错误"); sendMsg = "参数错误"; + isTure = false; } - PageQuery pageQuery = new PageQuery(); - pageQuery.setPageNum(0); - pageQuery.setPageSize(100); - TableDataInfo list = homeController.listForWebSocket(bo, pageQuery,loginUser); - sendMsg = JSON.toJSONString(list); + TableDataInfo list = null; + if (isTure){ + PageQuery pageQuery = new PageQuery(); + pageQuery.setPageNum(0); + pageQuery.setPageSize(100); + try { + list = homeController.listForWebSocket(bo, pageQuery,loginUser); + } catch (Exception e) { + isTure = false; + sendMsg = "获取设备列表失败"+e.getMessage(); + log.error("获取设备列表失败:{}",e.getMessage()); + } + } + sendMsg = isTure?JSON.toJSONString(list):sendMsg; + log.info("socket列表发送:{}",sendMsg); sendMsg(sendMsg,loginUser.getUserId()); } diff --git a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java index 5d5c231a5..0bac99464 100644 --- a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java +++ b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java @@ -54,6 +54,7 @@ public class PlusWebSocketHandler extends AbstractWebSocketHandler { @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { // 从WebSocket会话中获取登录用户信息 + log.info("socket:接受到消息 {}", message.getPayload()); LoginUser loginUser = (LoginUser) session.getAttributes().get(LOGIN_USER_KEY); String currentPath = session.getUri().getPath(); String lastPath = WebSocketSessionHolder.getSessions(loginUser.getUserId()).getUri().getPath();