websocket推送进度条百分比给前台
说明:后台springboot项目 前台vue+element-UI
直接放代码:
//别忘了开启springboot的websocket <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>
首先在启动类中注入
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
@Component
@ServerEndpoint("/websocket")
public class WebSocket {
private Session session;
private static CopyOnWriteArraySet<WebSocket> webSockets = new CopyOnWriteArraySet<>();
private String msg = "0";
@OnOpen
public void onOpen(Session session) {
this.session = session;
webSockets.add(this);
sendAllMessage(msg);
}
/**
* 关闭调用方法
*/
@OnClose
public void onClose() {
webSockets.remove(this);
}
@OnMessage
public void onMessage(String msg) {
}
/**
* 消息广播到前台
*
* @param msg
*/
public void sendAllMessage(String msg) {
for (WebSocket webSocket : webSockets) {
try {
webSocket.session.getBasicRemote().sendText(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
//前台vue
//前台js mounted是vue用来初始化的 methods里定义的是方法
//后台调用推送数据
@RestController
public class ExportTxt {
@Autowired
private WebSocket websocket;
@RequestMapping(value = "/test", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
public void test(){
String msg = "";
int a = 0;
for(int i=0;i<5;i++){
msg = String.valueOf(a);
websocket.sendAllMessage(msg);
a=a+20;
}
}
}
进度条进度数据 效果如下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)