From d0e483165493dd5b76896bc61e03f2322858a074 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 30 八月 2023 08:45:59 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NyHttpUtils.java    |   18 ++++++++++++++++--
 src/main/java/com/zy/core/thread/NyShuttleThread.java |    5 ++---
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NyHttpUtils.java b/src/main/java/com/zy/common/utils/NyHttpUtils.java
index 12d8c2c..a049062 100644
--- a/src/main/java/com/zy/common/utils/NyHttpUtils.java
+++ b/src/main/java/com/zy/common/utils/NyHttpUtils.java
@@ -5,6 +5,7 @@
 import com.zy.common.model.NavigateNode;
 import com.zy.core.model.command.NyShuttleHttpCommand;
 import com.zy.core.model.protocol.NyShuttleProtocol;
+import springfox.documentation.spring.web.json.Json;
 
 import java.io.*;
 import java.net.Socket;
@@ -303,14 +304,27 @@
                 }
             } while (response != null);
 //            System.out.println("Received response from server: " + sb);
-             return JSON.parseObject(sb.toString());
+
+            JSONObject result = JSON.parseObject(sb.toString());//寰楀埌鍝嶅簲缁撴灉闆�
+            if (!result.get("msgType").equals("responseMsg")) {//涓嶆槸鍝嶅簲鍐呭
+                return null;
+            }
+
+            JSONObject resultResponse = JSON.parseObject(result.get("response").toString());
+            JSONObject resultHeader = JSON.parseObject(resultResponse.get("header").toString());
+            int responseId = Integer.parseInt(resultHeader.get("responseId").toString());
+            if (responseId != httpCommand.getRequest().getHeader().getRequestId()) {
+                return null;//鍝嶅簲ID涓庤姹侷D涓嶄竴鑷�
+            }
+
+            return filterBodyData(result);//杩斿洖Body缁撴灉闆�
         } catch (Exception e) {
             e.printStackTrace();
         }
         return null;
     }
 
-    public static JSONObject filterData(JSONObject data) {
+    public static JSONObject filterBodyData(JSONObject data) {
         Object response = data.get("response");
         if (response == null) {
             return null;
diff --git a/src/main/java/com/zy/core/thread/NyShuttleThread.java b/src/main/java/com/zy/core/thread/NyShuttleThread.java
index 687766c..3d3d8a0 100644
--- a/src/main/java/com/zy/core/thread/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/NyShuttleThread.java
@@ -111,11 +111,10 @@
 
             //----------璇诲彇鍥涘悜绌挎杞︾姸鎬�-----------
             NyShuttleHttpCommand readStatusCommand = NyHttpUtils.getReadStatusCommand(slave.getId());
-            JSONObject result = NyHttpUtils.requestCommand(socket, readStatusCommand);
-            if (result == null) {
+            JSONObject jsonObject = NyHttpUtils.requestCommand(socket, readStatusCommand);
+            if (jsonObject == null) {
                 OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
             }else {
-                JSONObject jsonObject = NyHttpUtils.filterData(result);
                 //鎵嬪姩鐘舵��/鑷姩鐘舵��
                 shuttleProtocol.setWorkingMode(jsonObject.getInteger("workingMode"));
                 //鍏佽鐘舵�� 0:杩愯涓�1锛氱┖闂�

--
Gitblit v1.9.1