当前位置: 首页 > news >正文

怎么制作网站教程步骤wordpress阅读权限

怎么制作网站教程步骤,wordpress阅读权限,深圳福田网站优化网络营销培训学校,微商城网站建设多少钱文章目录 1.需求描述2.代码2.1.示例controller2.2.示例service2.3.示例impl 3.测试 1.需求描述 使用SSE的方式主要还是要跟前端建立一个EventSource的链接,有了这个连接,然后往通道里写入数据流,前端自然会拿到流式数据,写啥拿啥…

文章目录

  • 1.需求描述
  • 2.代码
    • 2.1.示例controller
    • 2.2.示例service
    • 2.3.示例impl
  • 3.测试

1.需求描述

使用SSE的方式主要还是要跟前端建立一个EventSource的链接,有了这个连接,然后往通道里写入数据流,前端自然会拿到流式数据,写啥拿啥,后端这个对象叫做SseEmitter.

2.代码

2.1.示例controller

@Slf4j
@RestController
@RequestMapping("/proxy")
public class StreamForwardingController {@Autowiredprivate ModelService modelService;@GetMapping("/sse/reply")public SseEmitter sseReply(@RequestBody JSONObject req) {try {return modelService.call(req);} catch (IOException e) {log.error("SSE接口异常:{}", e.getMessage());return new SseEmitter();}}
}

2.2.示例service

public interface ModelService {SseEmitter call(JSONObject param) throws IOException;}

2.3.示例impl

@Service
@Slf4j
public class ModelServiceImpl implements ModelService {/*其实可以自己组装SSE流式数据给前端(参考上篇文章)也可以调用别的流式接口,拿到流数据给前端(下面是这种方式)*/@Overridepublic SseEmitter call(JSONObject param) throws IOException {log.info("[SSE]开始调用大模型...");log.info("[SSE]请求参数:{}",param.toString());// 这里是自己的一些参数定义String id = RandomUtil.randomString(32);String xxx = param.getString("xxx");String yyy = param.getString("yyy");// 根据过期时间创建SSE对象SseEmitter sseEmitter = new SseEmitter(0L);// 预处理if(StringUtils.isEmpty(xxx) || StringUtils.isEmpty(yyy)){log.error("[SSE]请求参数为空");sseEmitter.send("error: 请求参数为空");//这里可以不这么做,将报错信息可以发出去sseEmitter.complete();//发完有个结束的标识,目的是为了结束连接return sseEmitter;}//组装流式接口请求对象 这里是请求别人家的流式接口的JSONObject req = new JSONObject();String targetUrl = "http://xxx/x/x/xxx/x/x/x";log.info("[SSE]流式接口:{}", targetUrl);log.info("[SSE]请求报文:{}", req);HttpRequest request = HttpRequest.post(targetUrl).header("Content-Type", ContentType.JSON.toString()).body(JSONUtil.toJsonStr(req)).timeout(10000);// 使用异步请求获取实时数据HttpResponse response = request.executeAsync();log.info("[SSE]模型状态码:{}", response.getStatus());if(response.getStatus() != HttpStatus.HTTP_OK) {log.error("[SSE]模型接口异常:{}",response.body());}//使用新的线程处理响应结果,如果是自己想弄个流式数据给前端返回,也是这个原理//循环往sse对象里send就完事了new Thread(()->{try (BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(response.bodyStream())))) {String line;while ((line = reader.readLine()) != null) {//System.out.println("line="+line);if(StringUtils.isNotEmpty(line)) sseEmitter.send(line);//else System.out.println("空行");}log.info("[SSE]模型接口解析完毕.");sseEmitter.complete();}catch (Exception e){log.error("[SSE]模型接口异常:{}", e.getMessage());}}).start();return sseEmitter;//最后记得把sse对象返回给前端}
}

3.测试

使用Postman测试即可,没啥特殊配置。
在这里插入图片描述

http://www.yayakq.cn/news/188032/

相关文章:

  • 做自己的网站要花多少钱软件库网站源码
  • 网站开发开题报告关键问题google seo怎么优化
  • 仿牌外贸网站制作网站版面结构
  • 餐饮网站建设教程wordpress 空行
  • 网站建设个网站一般需要花多少钱初二做网站的首页模板
  • 设计网站app西安市建设工程信息网招投标平台
  • 网站的功能和特色网上购书的网站开发的意义
  • 山东省建设部继续教育网站哈尔滨大型网站开发
  • 给网站网站做推广贵州小程序制作开发
  • 深圳汽车网站建设官方网站平台有哪些
  • 洛阳做网站公司哪家好商业网站建设设计
  • 大濮网最新濮阳消息新闻类网站怎么做seo
  • 谷歌网站收录提交入口郴州网站建设网络推广平台
  • 介休城乡建设网站wordpress 404插件
  • 网站 可信验证做图骂人的图片网站
  • 山东建设工会网站编程工具
  • 三门峡网站建设电话kfk wordpress
  • 做文案策划需要用到的网站个人网站毕业设计作品
  • 给境外合法网站做数据建设网站出现400错误
  • 常州高端网站制作公司排名网站怎样优化文章关键词
  • ps海报素材网站python配合wordpress
  • 装修网站大全网站系统名称怎么填
  • 郑州网站设计制作微信官网网页版登录入口
  • 做网站的流程百科门户网站怎么建设需要多长时间
  • 建设银行网站无法访问中小企业网络需求分析
  • 有什么做详情页的参考网站谷歌应用商店下载
  • 营销型网站的重要特点珠海网站建设制作哪家专业
  • 大连云建站模板网站运营是什么岗位
  • vue大型网站开发吗购物网站建设咨询
  • 怎么把网站制作成app佛山互联网公司