1.以前只是看过SSE的相关文章,没有具体实践,这次接入AI大模型使用到了流式输出,涉及到给前端流式返回,所以记录一下。
2.resp要设置为text/event-stream
resp.setContentType("text/event-stream");
resp.setCharacterEncoding("UTF-8");
resp.setHeader("Cache-Control", "no-cache");
resp.setBufferSize(0);
3.从resp中获取到PrintWriter
PrintWriter writer = resp.getWriter();
for(;;){
#用自己的业务进行输出,主要是一定要在内容末尾加上两个\n,不然调用flush()也不会推送给前端
writer.write("DONE\n\n");
writer.flush();
}
4.SSE的数据格式
常见data:数据内容
还用event:
id:
retry:
5.apifox进行测试
时间线里可以实现流式输出