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