From 513d8719dd870fed4022dacc56be46353c33e7f4 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 07 Dec 2020 10:48:31 +0800
Subject: [PATCH] 更新Websocket以及rabbitMQ关闭逻辑

---
 src/main/java/com/moral/webSocketServer/BSAQIWebSocketServer.java |   21 +++++++++++++--------
 src/main/java/com/moral/webSocketServer/BSWebsocketServer.java    |   29 +++++++++++++++++------------
 src/main/java/com/moral/controller/ScreenController.java          |    4 +---
 src/main/java/com/moral/util/RabbitMQUtils.java                   |    4 ++--
 4 files changed, 33 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index fb4e86b..4e37c00 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -727,7 +727,6 @@
              */
             /*������������start-------------------------------------------------------------------------*/
             list.remove(0);
-            if (list.size() == 23) {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
                 //���������������������yyyy-MM-dd HH:mm:ss
@@ -745,9 +744,8 @@
                     datas.put("time",time1);
                     list.add(datas);
                 }
-            }
-            /*������������end-------------------------------------------------------------------------*/
 
+            /*������������end-------------------------------------------------------------------------*/
 
             for (Map<String, Object> map : list) {
                 String time = map.get("time").toString();
diff --git a/src/main/java/com/moral/util/RabbitMQUtils.java b/src/main/java/com/moral/util/RabbitMQUtils.java
index ab031ec..115f4f1 100644
--- a/src/main/java/com/moral/util/RabbitMQUtils.java
+++ b/src/main/java/com/moral/util/RabbitMQUtils.java
@@ -27,9 +27,9 @@
 
     public static void closeConnectionChannel(Connection connection, Channel channel){
         try{
-            if(channel!=null)
+            if(channel!=null&&channel.isOpen())
                 channel.close();
-            if(connection!=null)
+            if(connection!=null&&connection.isOpen())
                 connection.close();
         }catch (Exception e){
             e.printStackTrace();
diff --git a/src/main/java/com/moral/webSocketServer/BSAQIWebSocketServer.java b/src/main/java/com/moral/webSocketServer/BSAQIWebSocketServer.java
index 3ae2aa1..09e5e0a 100644
--- a/src/main/java/com/moral/webSocketServer/BSAQIWebSocketServer.java
+++ b/src/main/java/com/moral/webSocketServer/BSAQIWebSocketServer.java
@@ -92,14 +92,19 @@
             channel.basicConsume(queue, false, new DefaultConsumer(channel) {
                 @Override
                 public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
-                    //������MQ������������������������������������������������������������
-                    Map message = (Map) JSON.parse((String) JSON.parse(new String(body)));
-                    Device device = deviceService.getDeviceByMac(mac,false);
-                    sendDeviceInfo(message, device);
-                    //������������
-                    channel.basicAck(envelope.getDeliveryTag(), true);
-                    //������socket������������������
-                    if (!webSocketMap.containsKey(accountId)) {
+                    try{
+                        //������MQ������������������������������������������������������������
+                        Map message = (Map) JSON.parse((String) JSON.parse(new String(body)));
+                        Device device = deviceService.getDeviceByMac(mac,false);
+                        sendDeviceInfo(message, device);
+                        //������������
+                        channel.basicAck(envelope.getDeliveryTag(), true);
+                        //������socket������������������
+                        if (!webSocketMap.containsKey(accountId)) {
+                            RabbitMQUtils.closeConnectionChannel(connection, channel);
+                        }
+                    }catch (Exception e){
+                        log.error(e.getMessage());
                         RabbitMQUtils.closeConnectionChannel(connection, channel);
                     }
                 }
diff --git a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java b/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
index 5e135c9..67c4b23 100644
--- a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
+++ b/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
@@ -110,21 +110,26 @@
             channel.basicConsume(queue, false, new DefaultConsumer(channel) {
                 @Override
                 public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
-                    //������MQ������������������������������������������������������������
-                    Map message = (Map) JSON.parse((String) JSON.parse(new String(body)));
-                    sendWindInfo(message);
+                      try{
+                          //������MQ������������������������������������������������������������
+                          Map message = (Map) JSON.parse((String) JSON.parse(new String(body)));
+                          sendWindInfo(message);
 
-                    //���������������������������������������mac���������������������������������mac������������
-                    if(mac!=null&&(!mac.equals(0)))
-                        sendDeviceInfo(message,deviceMap);
+                          //���������������������������������������mac���������������������������������mac������������
+                          if(mac!=null&&(!mac.equals(0)))
+                              sendDeviceInfo(message,deviceMap);
 
-                    //������������
-                    channel.basicAck(envelope.getDeliveryTag(), true);
+                          //������������
+                          channel.basicAck(envelope.getDeliveryTag(), true);
 
-                    //������socket������������������
-                    if (!webSocketMap.containsKey(accountId)) {
-                        RabbitMQUtils.closeConnectionChannel(connection, channel);
-                    }
+                          //������socket������������������
+                          if (!webSocketMap.containsKey(accountId)) {
+                              RabbitMQUtils.closeConnectionChannel(connection, channel);
+                          }
+                      }catch (Exception e){
+                          log.error(e.getMessage());
+                          RabbitMQUtils.closeConnectionChannel(connection, channel);
+                      }
                 }
             });
         } catch (IOException e) {

--
Gitblit v1.8.0