From c04171420e9522422d110acc165bd8c608c592fb Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 09 Oct 2020 13:20:41 +0800
Subject: [PATCH] 优化响应速度,取消flag标记以及具体设备的mac。
---
src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java | 36 ++++++++++++++++++------------------
1 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java b/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java
index 198f26a..9b42ef0 100644
--- a/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java
+++ b/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java
@@ -61,6 +61,7 @@
private static Map<String, Sensor> sensors;
+
@PostConstruct
public void init() {
sensors = new HashMap<>();
@@ -93,23 +94,25 @@
paramMap.put("regionCode", regionCode);
ParameterUtils.getRegionType4RegionCode(paramMap);
List<Device> deviceList = deviceService.queryDevice(paramMap);
+ Map<String,Device> deviceMap = new HashMap<>();
try {
Connection connection = RabbitMQUtils.getConnection();
final Channel channel = connection.createChannel();
//������������������
String queue = channel.queueDeclare().getQueue();
-
//������������������������routingKey������������
String routingKey = "";
for (Device d : deviceList) {
+ deviceMap.put(d.getMac(),d);
routingKey = orgId + "." + d.getMac();
channel.queueBind(queue, exchange, routingKey);
}
+
//������������,���������������������
- channel.basicQos(1);//���������������������������
+ channel.basicQos(30);//���������������
channel.basicConsume(queue, false, new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
@@ -119,10 +122,10 @@
//���������������������������������������mac���������������������������������mac������������
if(mac!=null&&(!mac.equals(0)))
- sendDeviceInfo(message,deviceList);
+ sendDeviceInfo(message,deviceMap);
//������������
- channel.basicAck(envelope.getDeliveryTag(), false);
+ channel.basicAck(envelope.getDeliveryTag(), true);
//������socket������������������
if (!webSocketMap.containsKey(accountId)) {
@@ -195,30 +198,27 @@
* @Author: ���������
* @Date: 2020/9/30
*/
- private void sendDeviceInfo(Map<String, Object> param,List<Device> deviceList) {
+ private void sendDeviceInfo(Map<String, Object> param,Map<String,Device> deviceMap) {
String deviceMac = (String) param.get("mac");
if (mac.equals(deviceMac)) {
try {
Map<String,Object> sortMap = new LinkedHashMap<>();
- Map<String, Object> map = new HashMap<>();
+
+ //���������������������������������
+ Device device =deviceMap.get(mac);
+ sortMap.put("������",device.getName());
+ sortMap.put("������",device.getAddress());
+
+
+ //���������������������������������
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);
+ sortMap.put(sensor.getName(), value + unit);
}
});
- String mac = (String) param.get("mac");
- map.put("mac", mac);
- map.put("flag",1);
- for (Device device : deviceList) {
- if(mac.equals(device.getMac())){
- sortMap.put("������",device.getName());
- sortMap.put("������",device.getAddress());
- sortMap.putAll(map);
- break;
- }
- }
+
sendMessage(JSON.toJSONString(sortMap));
} catch (IOException e) {
log.error("������mac������������������������");
--
Gitblit v1.8.0