wangliang 4 лет назад
Родитель
Сommit
bd418dd4d0

+ 7 - 3
themis-backend/src/main/java/com/qmth/themis/backend/websocket/WebSocketAdminServer.java

@@ -6,6 +6,7 @@ import com.qmth.themis.backend.listener.service.MqAdminLogicService;
 import com.qmth.themis.backend.websocketTemplete.WebSocketAdminMessageTemplete;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.WebsocketDto;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.enums.WebsocketTypeEnum;
@@ -17,7 +18,6 @@ import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.signature.SignatureInfo;
 import com.qmth.themis.common.signature.SignatureType;
-import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.mq.templete.Concurrently;
 import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
 import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
@@ -31,7 +31,10 @@ import javax.websocket.server.ServerEndpoint;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.net.InetSocketAddress;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -112,6 +115,7 @@ public class WebSocketAdminServer implements Concurrently {
                     tranMap = new HashMap<>();
                     tranMap.put("deviceId", this.deviceId);
                     tranMap.put("ip", this.ip);
+                    this.updateTime = System.currentTimeMillis();
                     tranMap.put("updateTime", this.updateTime);
                 } else {
                     throw new BusinessException(ExceptionResultEnum.AUTHORIZATION_ERROR);
@@ -147,7 +151,7 @@ public class WebSocketAdminServer implements Concurrently {
     public void onMessage(String message, Session session) {
         //可以群发消息
         //消息保存到数据库、redis
-        if (Objects.nonNull(message)) {
+        if (Objects.nonNull(message) && session.isOpen()) {
             try {
                 //解析发送的报文
                 JSONObject jsonObject = JSONObject.parseObject(message);

+ 6 - 16
themis-exam/src/main/java/com/qmth/themis/exam/websocket/WebSocketMobileServer.java

@@ -4,29 +4,17 @@ import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.WebsocketDto;
 import com.qmth.themis.business.entity.TBSession;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.MqTopicEnum;
-import com.qmth.themis.business.enums.SystemOperationEnum;
 import com.qmth.themis.business.enums.WebsocketTypeEnum;
-import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.WebsocketUtil;
-import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.signature.SignatureInfo;
 import com.qmth.themis.common.signature.SignatureType;
-import com.qmth.themis.exam.listener.service.MqOeLogicService;
 import com.qmth.themis.exam.websocketTemplete.WebSocketMobileMessageTemplete;
-import com.qmth.themis.exam.websocketTemplete.WebSocketOeMessageTemplete;
-import com.qmth.themis.mq.templete.Concurrently;
-import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
-import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
-import org.apache.rocketmq.common.message.MessageExt;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -36,9 +24,10 @@ import javax.websocket.server.ServerEndpoint;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.net.InetSocketAddress;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -121,6 +110,7 @@ public class WebSocketMobileServer {
                     tranMap.put("recordId", this.recordId);
                     tranMap.put("deviceId", this.deviceId);
                     tranMap.put("ip", this.ip);
+                    this.updateTime = System.currentTimeMillis();
                     tranMap.put("updateTime", this.updateTime);
                 } else {
                     throw new BusinessException(ExceptionResultEnum.AUTHORIZATION_ERROR);
@@ -155,7 +145,7 @@ public class WebSocketMobileServer {
     public void onMessage(String message, Session session) {
         //可以群发消息
         //消息保存到数据库、redis
-        if (Objects.nonNull(message)) {
+        if (Objects.nonNull(message) && session.isOpen()) {
             try {
                 //解析发送的报文
                 JSONObject jsonObject = JSONObject.parseObject(message);

+ 1 - 0
themis-exam/src/main/java/com/qmth/themis/exam/websocket/WebSocketOeServer.java

@@ -127,6 +127,7 @@ public class WebSocketOeServer implements Concurrently {
                     tranMap.put("recordId", this.recordId);
                     tranMap.put("deviceId", this.deviceId);
                     tranMap.put("ip", this.ip);
+                    this.updateTime = System.currentTimeMillis();
                     tranMap.put("updateTime", this.updateTime);
                 } else {
                     throw new BusinessException(ExceptionResultEnum.AUTHORIZATION_ERROR);