From 923e745c19cc286235628b4b29f16a1bd4f168cb Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 16 Sep 2020 11:23:54 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/webSocketServer/WebSocketServer.java | 51 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 37 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/moral/webSocketServer/WebSocketServer.java b/src/main/java/com/moral/webSocketServer/WebSocketServer.java
index e019555..bdbd695 100644
--- a/src/main/java/com/moral/webSocketServer/WebSocketServer.java
+++ b/src/main/java/com/moral/webSocketServer/WebSocketServer.java
@@ -1,6 +1,9 @@
package com.moral.webSocketServer;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;
import javax.websocket.OnClose;
@@ -11,7 +14,9 @@
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
-import com.moral.service.MonitorPointService;
+import com.moral.common.util.ParameterUtils;
+import com.moral.entity.Device;
+import com.moral.service.DeviceService;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
@@ -29,14 +34,20 @@
@Component
public class WebSocketServer {
- public static MonitorPointService monitorPointService;
+ public static DeviceService deviceService;
// ������������������������������������������������������������������������������
private Session session;
private String orgId;
+ private String accountId;
+
private String regionCode;
+
+ private Connection connection;
+
+ private Channel channel;
// ������session���������������������������
private static CopyOnWriteArraySet<WebSocketServer> webSocketSet = new CopyOnWriteArraySet<WebSocketServer>();
@@ -52,9 +63,16 @@
//������������������������������������������������
webSocketSet.add(this);
int flag = param.indexOf("&");
+ int regionCodeIndex = param.indexOf("_");
orgId = param.substring(0, flag);
- regionCode = param.substring(flag + 1);
- String QUEUE_NAME = "deviceInfo";
+ accountId = param.substring(flag + 1,regionCodeIndex);
+ regionCode = param.substring(regionCodeIndex + 1);
+ String QUEUE_NAME = "deviceInfo_" + accountId;
+ Map<String, Object> paramMap = new HashMap<String, Object>();
+ paramMap.put("orgId", orgId);
+ paramMap.put("regionCode", regionCode);
+ ParameterUtils.getRegionType4RegionCode(paramMap);
+ List<Device> deviceList = deviceService.queryDevice(paramMap);
try {
//������������������������������������������������
ConnectionFactory factory = new ConnectionFactory();
@@ -63,13 +81,15 @@
factory.setPort(5672);
factory.setUsername("guest");
factory.setPassword("guest_pass");
- String routingKey = orgId+".*";
- Connection connection = factory.newConnection();
- Channel channel = connection.createChannel();
+ String routingKey;
+ connection = factory.newConnection();
+ channel = connection.createChannel();
//���������������������������������������������������������������������������������������������������������
channel.queueDeclare(QUEUE_NAME, false, false, true, null);
- channel.queueBind(QUEUE_NAME,"screens_data",routingKey);
-
+ for (Device d : deviceList) {
+ routingKey = orgId + "." + d.getMac();
+ channel.queueBind(QUEUE_NAME, "screens_data", routingKey);
+ }
//���������������������
QueueingConsumer consumer = new QueueingConsumer(channel);
//������������������
@@ -81,8 +101,7 @@
String message = new String(delivery.getBody());
sendMessage(message);
}
- }catch (Exception e){
- e.printStackTrace();
+ } catch (Exception e) {
log.error(e.getMessage());
}
}
@@ -94,11 +113,15 @@
public void onClose() {
/**���������Set��� ������������������������*/
webSocketSet.remove(this);
+ try {
+ connection.close();
+ } catch (IOException e) {
+ log.error(e.getMessage());
+ }
}
@OnMessage
public void onMessage(String message) {
- System.out.println(message);
for (WebSocketServer webSocketServer : webSocketSet) {
webSocketServer.sendMessage(message);
}
@@ -127,7 +150,7 @@
this.session.getBasicRemote().sendText(message);
}
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e.getMessage());
}
}
@@ -139,7 +162,7 @@
*/
@OnError
public void onError(Session session, Throwable error) {
- error.printStackTrace();
+ log.error(error.getMessage());
}
}
--
Gitblit v1.8.0