Kaynağa Gözat

优化推送逻辑

周浩 9 yıl önce
ebeveyn
işleme
12d4f0f89a

+ 10 - 6
hsweb-web-websocket/src/main/java/org/hsweb/web/socket/cmd/support/SystemMonitorProcessor.java

@@ -58,7 +58,7 @@ public class SystemMonitorProcessor extends AbstractCmdProcessor {
                     startPublishCpu();
                     cpuMonitorIsStarted = true;
                 }
-                webSocketMessageManager.subscribe(getName(), userId, cmd.getSession());
+                webSocketMessageManager.subscribe(getName()+"-cpu", userId, cmd.getSession());
                 break;
             case "mem":
                 publish = memPublish.get(userId);
@@ -73,18 +73,21 @@ public class SystemMonitorProcessor extends AbstractCmdProcessor {
                     startPublishMem();
                     memMonitorIsStarted = true;
                 }
-                webSocketMessageManager.subscribe(getName(), userId, cmd.getSession());
+                webSocketMessageManager.subscribe(getName()+"-mem", userId, cmd.getSession());
                 break;
             case "mem-cancel":
                 cancelPublish(memPublish, userId, cmd.getSession());
+                webSocketMessageManager.deSubscribe(getName()+"-mem", userId, cmd.getSession());
                 break;
             case "cpu-cancel":
                 cancelPublish(cpuPublish, userId, cmd.getSession());
+                webSocketMessageManager.deSubscribe(getName()+"-cpu", userId, cmd.getSession());
                 break;
             case "cancel":
                 cancelPublish(memPublish, userId, cmd.getSession());
                 cancelPublish(cpuPublish, userId, cmd.getSession());
-                webSocketMessageManager.deSubscribe(getName(), userId, cmd.getSession());
+                webSocketMessageManager.deSubscribe(getName()+"-mem", userId, cmd.getSession());
+                webSocketMessageManager.deSubscribe(getName()+"-cpu", userId, cmd.getSession());
                 break;
         }
     }
@@ -159,7 +162,7 @@ public class SystemMonitorProcessor extends AbstractCmdProcessor {
                         WebSocketMessage msg = new WebSocketMessage();
                         msg.setTo(publish.getUserId());
                         msg.setContent(infoList);
-                        msg.setType(getName());
+                        msg.setType(getName()+"-cpu");
                         msg.setCallBack(publish.getCallback());
                         msg.setFrom("system");
                         try {
@@ -196,7 +199,7 @@ public class SystemMonitorProcessor extends AbstractCmdProcessor {
                         WebSocketMessage msg = new WebSocketMessage();
                         msg.setTo(publish.getUserId());
                         msg.setContent(map);
-                        msg.setType(getName());
+                        msg.setType(getName()+"-mem");
                         msg.setCallBack(publish.getCallback());
                         msg.setFrom("system");
                         try {
@@ -228,7 +231,8 @@ public class SystemMonitorProcessor extends AbstractCmdProcessor {
         if (user != null) {
             cancelPublish(cpuPublish, user.getId(), session);
             cancelPublish(memPublish, user.getId(), session);
-            webSocketMessageManager.deSubscribe(getName(), user.getId(),session);
+            webSocketMessageManager.deSubscribe(getName()+"-cpu", user.getId(),session);
+            webSocketMessageManager.deSubscribe(getName()+"-mem", user.getId(),session);
         }
 
     }

+ 1 - 3
hsweb-web-websocket/src/main/java/org/hsweb/web/socket/message/SimpleWebSocketMessageManager.java

@@ -50,9 +50,9 @@ public class SimpleWebSocketMessageManager implements WebSocketMessageManager {
                     try {
                         if (subscribe.getTopic(session.getId()).contains(message.getType()))
                             session.sendMessage(new TextMessage(message.toString()));
-                        else saveMessage(message);
                     } catch (IOException e) {
                         e.printStackTrace();
+                        saveMessage(message);
                     }
                 });
             else {
@@ -63,8 +63,6 @@ public class SimpleWebSocketMessageManager implements WebSocketMessageManager {
 
             }
             return true;
-        } else {
-            saveMessage(message);
         }
         return false;
     }