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

厦门建站服务网站建设实施计划

厦门建站服务,网站建设实施计划,网站模板文件不存在,推广网站设计推广方案#x1f31f; 前言 欢迎来到我的技术小宇宙#xff01;#x1f30c; 这里不仅是我记录技术点滴的后花园#xff0c;也是我分享学习心得和项目经验的乐园。#x1f4da; 无论你是技术小白还是资深大牛#xff0c;这里总有一些内容能触动你的好奇心。#x1f50d; #x… 前言 欢迎来到我的技术小宇宙 这里不仅是我记录技术点滴的后花园也是我分享学习心得和项目经验的乐园。 无论你是技术小白还是资深大牛这里总有一些内容能触动你的好奇心。 洛可可白个人主页 个人专栏✅前端技术 ✅后端技术 个人博客洛可可白博客 代码获取bestwishes0203 封面壁纸洛可可白wallpaper SpringBoot中SSE接口的两种方法 实现实时数据推送SpringBoot中SSE接口的两种方法一、什么是SSE二、项目环境准备1. 基础依赖 三、两种实现方式对比四、传统Servlet实现基于SseEmitter1. 控制器实现2. 关键点解析 五、响应式实现基于WebFlux1. 控制器实现2. 核心优势 六、接口测试方法1. 使用curl测试2. 前端示例 七、生产环境注意事项八、扩展应用场景九、总结 实现实时数据推送SpringBoot中SSE接口的两种方法 一、什么是SSE SSEServer-Sent Events 是一种基于HTTP的服务器向客户端单向实时推送数据的技术。与WebSocket不同SSE天然支持断线重连且协议简单适用于股票行情、实时日志、消息通知等场景。 二、项目环境准备 1. 基础依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency!-- 若使用WebFlux方式 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-webflux/artifactId /dependency三、两种实现方式对比 特性传统Servlet方式WebFlux响应式方式线程模型阻塞IO线程池非阻塞IO事件循环资源消耗较高较低代码复杂度需手动管理线程声明式编程适用场景简单低频场景高并发实时场景 四、传统Servlet实现基于SseEmitter 1. 控制器实现 RestController public class SseController {GetMapping(/sse)public SseEmitter handleSse() {SseEmitter emitter new SseEmitter();ScheduledExecutorService executor Executors.newSingleThreadScheduledExecutor();Runnable task () - {try {String data Time: LocalDateTime.now();emitter.send(SseEmitter.event().data(data).id(String.valueOf(System.currentTimeMillis())));} catch (IOException e) {emitter.completeWithError(e);executor.shutdown();}};// 定时发送立即执行每秒一次executor.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);// 客户端断开处理emitter.onCompletion(executor::shutdown);emitter.onTimeout(executor::shutdown);return emitter;} }2. 关键点解析 SseEmitter核心类保持长连接ScheduledExecutorService定时任务线程池事件结构支持设置id/event/data等字段资源释放通过onCompletion/onTimeout确保线程池关闭 五、响应式实现基于WebFlux 1. 控制器实现 RestController public class SseWebFluxController {GetMapping(value /sse-stream, produces MediaType.TEXT_EVENT_STREAM_VALUE)public FluxServerSentEventString streamEvents() {return Flux.interval(Duration.ofSeconds(1)).map(sequence - ServerSentEvent.Stringbuilder().id(String.valueOf(sequence)).event(time-update).data(SSE from WebFlux - LocalDateTime.now()).build());} }2. 核心优势 非阻塞IO基于Reactor库实现响应式流自动背压处理客户端消费速度差异简洁API使用Flux流式编程 六、接口测试方法 1. 使用curl测试 curl http://localhost:8080/sse curl http://localhost:8080/sse-stream2. 前端示例 script const eventSource new EventSource(/sse);eventSource.onmessage (e) {console.log(Received:, e.data); };eventSource.addEventListener(time-update, (e) {console.log(Custom event:, e.data); }); /script七、生产环境注意事项 连接管理设置合理的超时时间默认30秒 错误处理添加onError回调记录异常 跨域配置需要配置CORS Configuration public class WebConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/sse*).allowedOrigins(*);} }性能监控跟踪活跃连接数 八、扩展应用场景 实时股票报价推送系统运行状态监控聊天应用消息通知长耗时任务进度更新 九、总结 两种实现方式各有优势 传统Servlet方式 适合简单场景快速实现WebFlux方式 更适合高并发、低延迟需求 建议根据实际场景选择对于新项目推荐使用WebFlux实现能更好地利用系统资源。希望本文能帮助您快速上手SpringBoot中的SSE开发 源码地址https://gitee.com/bestwishes0203 如果对你有帮助点赞、收藏、关注是我更新的动力
http://www.zqtcl.cn/news/54566/

相关文章:

  • wordpress 注册邮件设置aso优化注意什么
  • 怎样做一个购物型的网站番禺区手机版网站建设
  • 商城网站制作需要多少费用东莞建网站的公
  • 兰州网站建设多少钱系统开发人员有哪几类
  • 购物网站 购物车界面如何做pc端ui设计
  • 盐城网站设计公司自动生成设计图
  • seo爱站网网页制作和网页制作
  • 陕西省建设厅官方网站百度收录有什么用
  • 自己做的博客网站站长之家app
  • 佛山新网站建设服务公司网站备案没公司名称
  • 深圳制作网站的公司简介wordpress外贸
  • 网站项目的工作流程运营网站开发工作招聘
  • 汤原建设局网站温州网站制作建设
  • 网站制作珠海公司国家商标注册查询官网入口
  • 咸阳做网站托管qq是腾讯还是阿里
  • 做app和做网站那个难门户网站含义
  • 家居网站建设费用企业建设网站的
  • HTML5网站建设案例诸城企业网站建设
  • 能做SEO优化的网站建设凡客诚品官方商城
  • 甘肃省城乡城乡建设厅网站首页以net结尾的网站
  • 电子商务网站建设 大纲wordpress 皮主题
  • 在线制作网站系统静态网站
  • 电商网站改版思路企业如何 建设好自己的网站
  • 建筑设计地图网站电子商务网站建设与管理 技能实训
  • 怎样为企业设计网站微信公众号和网站建设
  • 静态网站设计怎么做宏润建设集团股份有限公司网站
  • 服务器网站建设实训报告商丘专业做网站公司
  • 海外网站代理html5响应式网站建设平台
  • 公司做网站设计要注意网易企业邮箱收费版
  • 企业网站建设建设门户网站建设哪里有