孙永军 1 yıl önce
ebeveyn
işleme
8a6d983cf2

+ 3 - 3
src/main/java/com/sxtvs/open/api/chat/service/impl/KimiChatServiceImpl.java

@@ -54,8 +54,8 @@ public class KimiChatServiceImpl extends ServiceImpl<KimiChatMapper, KimiChat> i
 
     private final String token = "sk-eKQV5KAqkQHINWZV9IBbsuefO21A6oTToY9pv9nyDeXPH0zu";
 
-/*    @Resource
-    private SSEService sseService;*/
+    @Resource
+    private SSEService sseService;
 
     private HttpHeaders getHeader(){
         HttpHeaders headers = new HttpHeaders();
@@ -91,7 +91,7 @@ public class KimiChatServiceImpl extends ServiceImpl<KimiChatMapper, KimiChat> i
                         while ((line = reader.readLine()) != null) {
                             log.info("流数据 -- {} ", line);
                             if (!TextUtils.isEmpty(line)) {
-//                                sseService.sendData( dataId, line );
+                                sseService.sendData( dataId, line );
                                 if (!"data: [DONE]".equals(line) && !line.isEmpty()) {
                                     stream2db(line.substring(6), dataId);
                                 }

+ 1 - 2
src/main/java/com/sxtvs/open/api/review/controller/SseController.java

@@ -32,7 +32,6 @@ public class SseController {
         return sseEmitter;
     }
 
-/*
     @Resource
     private KimiChatServiceImpl kimiChatService;
 
@@ -64,5 +63,5 @@ public class SseController {
 
         });
         return sseEmitter;
-    }*/
+    }
 }

+ 4 - 3
src/main/java/com/sxtvs/open/api/review/service/impl/SSEService.java

@@ -18,6 +18,7 @@ import java.util.concurrent.ThreadPoolExecutor;
 public class SSEService {
 
     private Map<Long, SseEmitter>  sseMap = new HashMap<>();
+    private Map<Long, SseEmitter>  sseDataMap = new HashMap<>();
 
     public void monitor(String token, SseEmitter sseEmitter) {
 
@@ -43,12 +44,12 @@ public class SSEService {
     }
 
     public void monitor(Long groupId, SseEmitter sseEmitter) {
-        sseMap.put(groupId, sseEmitter);
+        sseDataMap.put(groupId, sseEmitter);
     }
 
     public Boolean sendData(Long dataId, Object data) {
-        if (sseMap.containsKey(dataId)){
-            SseEmitter sseEmitter = sseMap.get(dataId);
+        if (sseDataMap.containsKey(dataId)){
+            SseEmitter sseEmitter = sseDataMap.get(dataId);
             try {
                 sseEmitter.send(SseEmitter.event().name("data").data(data));
                 return true;