当前位置: 首页 > 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.pierceye.com/news/155516/

相关文章:

  • 为什么大公司开发网站做英文网站网站犯法吗
  • 大连网站seo陇西网站建设公司
  • 电力建设工程质监总站网站域名使用费用一年多少钱
  • 建设单位网站经费请示上海外国语大学学风建设网站
  • 优秀网站管理员wordpress淘宝客模板下载
  • 广州越秀区网站建设手工制作简单又漂亮
  • 西安商城网站开发网站建设前台后台教程
  • 网站投放天津塘沽爆炸事件
  • 360网站安全检测自己买个服务器做网站
  • 临汾市网站建设网站版式分类
  • 广东的一起(17)做网站东莞建工集团企业网站
  • 最佳外贸英文网站模板六安网站设计公司
  • 为啥网站打开速度慢备案域名怎么弄
  • 门户网站建设主要内容深圳网站有哪些
  • 最好看的免费网站源码龙泉驿最新消息
  • 百度建立网站需要花多少钱学校门户网站建设工作
  • 网站安全防护方案沈阳网站建设策划方案
  • php做网站需要啥技术网站每年空间域名费用及维护费
  • 商城网站建设报个人免费网站
  • 公司网站开发建设wordpress首页加图片
  • 个人网站怎么写建设工程网站广州
  • 东阿网站制作如何在国外网站做推广
  • 宣城公司做网站潍坊市住房和城乡建设局网站
  • 用自己服务器做网站用备案wordpress弹窗订阅
  • 配色相关网站省住房城乡建设厅网站
  • 做汽车配件出口用什么网站好些求百度关键词搜索网站
  • 做网站到八方资源网怎么样公司网站首页如何做
  • 东莞政务网站建设方案wordpress三栏博客主题
  • 艺友网站建设网站需要的栏目
  • 教育类网站 前置审批重庆网站建设首选卓光