diff --git a/src/main/java/com/dsideal/base/AI/Controller/SSEController.java b/src/main/java/com/dsideal/base/AI/Controller/SSEController.java new file mode 100644 index 00000000..ac343e3a --- /dev/null +++ b/src/main/java/com/dsideal/base/AI/Controller/SSEController.java @@ -0,0 +1,56 @@ +package com.dsideal.base.AI.Controller; + +import com.jfinal.core.Controller; +import com.jfinal.kit.SseEmitter; + +public class SSEController extends Controller { + /** + * 主线程里 + * 测试本地发送文本打字机 + */ + public void sse1() throws InterruptedException { + String msg = "111 222 333 444 555 666 777"; + //创建sse + SseEmitter sseEmitter = new SseEmitter(getResponse()); + //主线程里拿到数据推送消息 + String[] datas = msg.split(""); + for (String data : datas) { + //推送 + sseEmitter.sendMessage(data); + Thread.sleep(50); + } + //sse完成 + sseEmitter.complete(); + //结束response + renderNull(); + } + + /** + * 异步子线程模拟 + * 测试本地发送文本打字机 + * http://10.10.21.20:9200/dsBase/ai/sse2 + */ + public void sse2() { + //创建sse + final SseEmitter sseEmitter = new SseEmitter(getResponse()); + String msg = "111 222 333 444 555 666 777"; + //模拟chatgptapi 异步调用返回 + new Thread(() -> { + String[] datas = msg.split(""); + for (String data : datas) { + //推送 异步子线程里推送数据给客户端 + sseEmitter.sendMessage(data); + try { + Thread.sleep(50); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + //完成sse 告知主线程已经完成 + sseEmitter.complete(); + }).start(); + //锁住等待子线程推送完成 + sseEmitter.waiting(100); + renderNull(); + } +} diff --git a/src/main/java/com/dsideal/base/AI/Controller/YunNanAiController.java b/src/main/java/com/dsideal/base/AI/Controller/YunNanAiController.java index 49e3db13..8a22e16b 100644 --- a/src/main/java/com/dsideal/base/AI/Controller/YunNanAiController.java +++ b/src/main/java/com/dsideal/base/AI/Controller/YunNanAiController.java @@ -75,54 +75,4 @@ public class YunNanAiController extends Controller { sseEmitter.waiting(100); renderNull(); } - - /** - * 主线程里 - * 测试本地发送文本打字机 - */ - public void sse1() throws InterruptedException { - String msg = "111 222 333 444 555 666 777"; - //创建sse - SseEmitter sseEmitter = new SseEmitter(getResponse()); - //主线程里拿到数据推送消息 - String[] datas = msg.split(""); - for (String data : datas) { - //推送 - sseEmitter.sendMessage(data); - Thread.sleep(50); - } - //sse完成 - sseEmitter.complete(); - //结束response - renderNull(); - } - - /** - * 异步子线程模拟 - * 测试本地发送文本打字机 - * http://10.10.21.20:9200/dsBase/ai/sse2 - */ - public void sse2() { - //创建sse - final SseEmitter sseEmitter = new SseEmitter(getResponse()); - String msg = "111 222 333 444 555 666 777"; - //模拟chatgptapi 异步调用返回 - new Thread(() -> { - String[] datas = msg.split(""); - for (String data : datas) { - //推送 异步子线程里推送数据给客户端 - sseEmitter.sendMessage(data); - try { - Thread.sleep(50); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - //完成sse 告知主线程已经完成 - sseEmitter.complete(); - }).start(); - //锁住等待子线程推送完成 - sseEmitter.waiting(100); - renderNull(); - } } diff --git a/src/main/java/com/dsideal/base/BaseApplication.java b/src/main/java/com/dsideal/base/BaseApplication.java index a4df3531..129bdafd 100644 --- a/src/main/java/com/dsideal/base/BaseApplication.java +++ b/src/main/java/com/dsideal/base/BaseApplication.java @@ -1,5 +1,6 @@ package com.dsideal.base; +import com.dsideal.base.AI.Controller.SSEController; import com.dsideal.base.AI.Controller.YunNanAiController; import com.dsideal.base.Base.Controller.BaseController; import com.dsideal.base.Classes.Controller.ClassController; @@ -100,9 +101,12 @@ public class BaseApplication extends JFinalConfig { //资源管理 me.add("/res", ResourceController.class); //云校 - me.add("/yx",YunXiaoController.class); + me.add("/yx", YunXiaoController.class); //大数据AI me.add("/ai", YunNanAiController.class); + //SSE测试 + me.add("/sse", SSEController.class); + } @Override