parent
c618d930e0
commit
91edaf6d38
@ -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();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue