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