Java SSE流式数据前后端实现

news/2025/3/1 22:31:16/

#Java SSE流式数据前后端实现

Java后端实现

java">@RestController
public class SSEController {@GetMapping(value = "/sse/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public SseEmitter streamSse() throws InterruptedException, IOException {SseEmitter emitter = new SseEmitter(60_000L);new Thread(() -> {  // 异步通信,否则消息会全部完成后发送try {for (int i = 1; i <= 5; i++) {Thread.sleep(1000); // 模拟延迟emitter.send("data: Message " + i + "\n\n");}emitter.complete();} catch (Exception e) {emitter.completeWithError(e);}}).start();return emitter;}
}

##前端代码实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>SSE Example</title>
</head>
<body><div id="output"></div><script>javascript">const output = document.getElementById('output');const eventSource = new EventSource('http://localhost:8080/sse/stream');eventSource.onmessage = function(event) {console.log(event);const data = event.data; const newElement = document.createElement('div');newElement.textContent = data;output.appendChild(newElement);};eventSource.onerror = function(e) {console.error('SSE Connection Error:', e);eventSource.close();const newElement = document.createElement('div');newElement.textContent = "Connection Closed";output.appendChild(newElement);};</script>
</body>
</html>

http://www.ppmy.cn/news/1575882.html

相关文章

Maven 插件的使用(一)

一、Maven 插件初相识 在 Java 项目的开发旅程中&#xff0c;Maven 作为一款强大的项目管理和构建工具&#xff0c;早已成为众多开发者的得力助手。而 Maven 插件&#xff0c;更是 Maven 生态系统中的璀璨明珠&#xff0c;它极大地拓展了 Maven 的功能边界&#xff0c;让项目构…

el-table fixed滚动条被遮挡导致滚动条无法拖动

/* 设置默认高度-滚动条高度 */ .el-table__fixed { height: calc(100% - 16px) !important; } .el-table__fixed:before { height: 0px; }

大模型最新面试题系列:训练篇之分布式训练

1. 对比数据并行、模型并行、流水线并行的显存占用模型 核心思想&#xff1a;不同并行策略对显存的优化方向不同。 数据并行&#xff1a; 显存占用&#xff1a;每个GPU保存完整的模型副本&#xff0c;显存占用模型参数梯度优化器状态。问题&#xff1a;显存占用与GPU数量无关…

灵犀互娱游戏测试开发一面面经

阿里的子公司, 做的是游戏业务, 所以投递的时候把简历上加上了自己的游戏经历. 面试官大哥也围绕着游戏问了一些问题, 面试体验很好~~ 1. 介绍一下自己 (巴拉巴拉一顿说) 2. 看你的简历上有写关于用友的实习, 可以介绍一下那边的业务吗? 还有为什么那边用的c#来写自动化脚…

深度学习-11.用于自然语言处理的循环神经网络

Deep Learning - Lecture 11 Recurrent Networks for Natural Language Processing 介绍文本表示用数字表示单词词嵌入(word embedding) 机械翻译编码器 - 解码器循环模型&#xff08;Encoder-decoder recurrent models&#xff09;双向循环网络 注意力机制&#xff08;方法&am…

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题 一、问题描述&#xff1a;异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源 二、问题详细分析1. 场景重现2. 问题分析 三、解决方案四、总结 一、问题描述&#xff1a;异步线程操作导致请求复…

5分钟学习-什么事前端HTML文件

以下从 HTML 文件的基本概念、结构、常用标签等方面&#xff0c;以新手容易理解的方式进行介绍&#xff0c;并给出示例帮助新手看懂 HTML 文件。 1. 什么是 HTML 文件 HTML 即超文本标记语言&#xff08;HyperText Markup Language&#xff09;&#xff0c;它是用于创建网页的…

八股打卡(三)

八股打卡三 保证数据库和缓存一致性&#xff08;回顾复习&#xff09;String, StringBuilder, StringBuffer区别接口和抽象类的区别Java常见的异常类Java三大特性继承封装多态 Java多态重写和重载的区别final关键字的作用 和 equals区别Java中的集合类线程不安全的集合类线程安…