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