From a13506f193f38720ae2729f9c2ceb35bf9fdb898 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 28 Sep 2020 11:50:05 +0800
Subject: [PATCH] 更新获取风向和设备信息,添加经纬度,修改rabbit MQ代码。

---
 src/main/java/com/moral/webSocketServer/BSWebsocketServer.java |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java b/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
index acd222b..ce40a43 100644
--- a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
+++ b/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
@@ -46,7 +46,6 @@
 
     private String regionCode;
 
-
     private final String exchange = "screens_data";
 
     private static Map<String, Sensor> sensors;
@@ -68,8 +67,8 @@
     public void onOpen(Session session, @PathParam("param") String param) {
         this.session = session;
         String[] params = param.split("&");
-        this.orgId = params[1];
         this.accountId = params[0];
+        this.orgId = params[1];
         this.regionCode = params[2];
 
         if (webSocketMap.containsKey(accountId)) {
@@ -99,13 +98,18 @@
             }
 
             //������������,���������������������
+            channel.basicQos(1);//���������������������������
             channel.basicConsume(queue, false, new DefaultConsumer(channel) {
                 @Override
                 public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                     Map message = (Map) JSON.parse((String) JSON.parse(new String(body)));
-                    message = messageFormat(message);
+                    message = messageFormat(message,deviceList);
                     sendMessage(JSON.toJSONString(message));
                     channel.basicAck(envelope.getDeliveryTag(), false);
+                    //������socket������������������
+                    if (!webSocketMap.containsKey(accountId)) {
+                        RabbitMQUtils.closeConnectionChannel(connection,channel);
+                    }
                 }
             });
         } catch (IOException e) {
@@ -142,17 +146,25 @@
         }
     }
 
-    //���MQ������������������������������������
-    private Map<String,Object> messageFormat( Map<String,Object> param) {
+    //���MQ���������������������������������������������������������������
+    private Map<String,Object> messageFormat( Map<String,Object> param,List<Device> deviceList) {
         Map<String, Object> map = new HashMap<>();
-        param.forEach((key, value) -> { ;
+        param.forEach((key, value) -> {
             Sensor sensor = sensors.get(key);
             if (!ObjectUtils.isEmpty(sensor)) {
                 String unit = ObjectUtils.isEmpty(sensor.getUnit())?"":(String)sensor.getUnit();
                 map.put(sensor.getName(),value+unit);
             }
         });
-        map.put("mac",param.get("mac"));
+        String mac = (String) param.get("mac");
+        for (Device device : deviceList) {
+            if(mac.equals(device.getMac())){
+                map.put("������",device.getLatitude());
+                map.put("������",device.getLongitude());
+                break;
+            }
+        }
+        map.put("mac",mac);
         return map;
     }
 

--
Gitblit v1.8.0