From d2108ee735894d73bf655bda1651ecaefbc4c09d Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Sat, 23 Mar 2024 09:35:02 +0800
Subject: [PATCH] 图斑

---
 src/main/java/com/dji/sample/component/websocket/service/impl/WebSocketManageServiceImpl.java |   24 ++++++++++--------------
 1 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/dji/sample/component/websocket/service/impl/WebSocketManageServiceImpl.java b/src/main/java/com/dji/sample/component/websocket/service/impl/WebSocketManageServiceImpl.java
index 5319b96..a0070d4 100644
--- a/src/main/java/com/dji/sample/component/websocket/service/impl/WebSocketManageServiceImpl.java
+++ b/src/main/java/com/dji/sample/component/websocket/service/impl/WebSocketManageServiceImpl.java
@@ -6,7 +6,6 @@
 import com.dji.sample.component.websocket.service.IWebSocketManageService;
 import com.dji.sample.manage.model.enums.UserTypeEnum;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
@@ -26,10 +25,7 @@
 public class WebSocketManageServiceImpl implements IWebSocketManageService {
 
     private static final ConcurrentHashMap<String, ConcurrentWebSocketSession> SESSIONS = new ConcurrentHashMap<>(16);
-
-    @Autowired
-    private RedisOpsUtils redisOps;
-
+    
     @Override
     public void put(String key, ConcurrentWebSocketSession val) {
         String[] name = key.split("/");
@@ -40,11 +36,11 @@
         String sessionId = val.getId();
         String workspaceKey = RedisConst.WEBSOCKET_PREFIX + name[0];
         String userTypeKey = RedisConst.WEBSOCKET_PREFIX + UserTypeEnum.find(Integer.parseInt(name[1])).getDesc();
-        redisOps.hashSet(workspaceKey, sessionId, name[2]);
-        redisOps.hashSet(userTypeKey, sessionId, name[2]);
+        RedisOpsUtils.hashSet(workspaceKey, sessionId, name[2]);
+        RedisOpsUtils.hashSet(userTypeKey, sessionId, name[2]);
         SESSIONS.put(sessionId, val);
-        redisOps.expireKey(workspaceKey, RedisConst.WEBSOCKET_ALIVE_SECOND);
-        redisOps.expireKey(userTypeKey, RedisConst.WEBSOCKET_ALIVE_SECOND);
+        RedisOpsUtils.expireKey(workspaceKey, RedisConst.WEBSOCKET_ALIVE_SECOND);
+        RedisOpsUtils.expireKey(userTypeKey, RedisConst.WEBSOCKET_ALIVE_SECOND);
     }
 
     @Override
@@ -54,8 +50,8 @@
             log.debug("The key is out of format. [{workspaceId}/{userType}/{userId}]");
             return;
         }
-        redisOps.hashDel(RedisConst.WEBSOCKET_PREFIX + name[0], new String[] {sessionId});
-        redisOps.hashDel(RedisConst.WEBSOCKET_PREFIX + UserTypeEnum.find(Integer.parseInt(name[1])).getDesc(), new String[] {sessionId});
+        RedisOpsUtils.hashDel(RedisConst.WEBSOCKET_PREFIX + name[0], new String[] {sessionId});
+        RedisOpsUtils.hashDel(RedisConst.WEBSOCKET_PREFIX + UserTypeEnum.find(Integer.parseInt(name[1])).getDesc(), new String[] {sessionId});
         SESSIONS.remove(sessionId);
     }
 
@@ -66,7 +62,7 @@
         }
         String key = RedisConst.WEBSOCKET_PREFIX + workspaceId;
 
-        return redisOps.hashKeys(key)
+        return RedisOpsUtils.hashKeys(key)
                 .stream()
                 .map(SESSIONS::get)
                 .filter(Objects::nonNull)
@@ -76,10 +72,10 @@
     @Override
     public Collection<ConcurrentWebSocketSession> getValueWithWorkspaceAndUserType(String workspaceId, Integer userType) {
         String key = RedisConst.WEBSOCKET_PREFIX + UserTypeEnum.find(userType).getDesc();
-        return redisOps.hashKeys(key)
+        return RedisOpsUtils.hashKeys(key)
                 .stream()
                 .map(SESSIONS::get)
-                .filter(Objects::nonNull)
+                .filter(this.getValueWithWorkspace(workspaceId)::contains)
                 .collect(Collectors.toSet());
     }
 

--
Gitblit v1.9.3