Bladeren bron

分布式ws推文增加判空逻辑

wangqi49 5 maanden geleden
bovenliggende
commit
6ff67af536

+ 4 - 0
src/main/java/com/webchat/service/SessionService.java

@@ -35,4 +35,8 @@ public class SessionService {
         Object valObj = request.getSession().getAttribute(key);
         return valObj == null ? null : valObj.toString();
     }
+
+    public void remove(String key) {
+        request.getSession().removeAttribute(key);
+    }
 }

+ 1 - 0
src/main/java/com/webchat/service/SlideVerificationService.java

@@ -23,6 +23,7 @@ import org.springframework.util.CollectionUtils;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
+import java.util.concurrent.locks.ReentrantLock;
 import java.util.stream.Collectors;
 
 /**

+ 1 - 0
src/main/java/com/webchat/service/ValidCodeService.java

@@ -34,6 +34,7 @@ public class ValidCodeService {
         }
         // Session 保存下来
         if (code.equals(sessionService.get(WebConstant.PIC_VALID_CODE_SESSION_KEY))) {
+            sessionService.remove(WebConstant.PIC_VALID_CODE_SESSION_KEY);
             return;
         }
         throw new AuthException("图形验证码校验失败");

+ 5 - 1
src/main/java/com/webchat/service/listener/RedisPushMessageListener.java

@@ -73,7 +73,11 @@ public class RedisPushMessageListener implements MessageListener {
         // 5. 处理在线场景推文
         for (String userId : subscribeUsers) {
             // 5.1 获取公众号所有订阅且在线用户(需要实时推文)
-            Session session = ChatWebSocket.clients.get(userId).getSession();
+            ChatWebSocket ws = ChatWebSocket.clients.get(userId);
+            if (ws == null) {
+                continue;
+            }
+            Session session = ws.getSession();
             if (session == null || !session.isOpen()) {
                 continue;
             }

+ 8 - 7
src/main/resources/application-dev.yml

@@ -8,6 +8,7 @@ server:
       timeout: 60s
   tomcat:
     max-connections: 1000
+    max-threads: 1000
 
 # set enable swagger
 swagger:
@@ -16,9 +17,9 @@ swagger:
 spring:
   # set mysql config
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/webchat?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
-    username: root
-    password: 12345678
+    url: jdbc:mysql://mysql57.rdsmfzxxwn3idxt.rds.bd.baidubce.com:3306/webchat?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
+    username: wangqi
+    password: wq547759477
     driver-class-name: com.mysql.jdbc.Driver
     hikari:
       maximum-pool-size: 50
@@ -39,7 +40,7 @@ spring:
   elasticsearch:
     message-index: chat_mess_dev
     rest:
-      uris: # es配置
+      uris: http://8.140.184.12:9200
 
 # 大模型配置,应用于对话机器人
 llm:
@@ -47,11 +48,11 @@ llm:
     # 当前开启使用哪个模型 kimi or deepseek
     model: kimi
     kimi:
-      api-key: # 替换自己的kimi ak
+      api-key: sk-BsG4iFzdpTBbrsx5cCMlTVCRzI5pdlwGco8286ranZ746aX6
       model: moonshot-v1-8k
     deepseek:
       api-key: #替换为自己的deepseek开发者apiKey
       model: deepseek-chat
     liblib:
-      accessKey: # 替换自己的liblib ak,注册liblib会送500积分
-      SecretKey: # 替换自己的liblib sk,注册liblib会送500积分
+      accessKey: at4oOOb07YDuCFhICHWE-g
+      SecretKey: XegvK69OprhgesBBD6R5ohJlc9y0wqVC