如何将进度传给前端呢

业务需求,导出某一数据,但是有时候可能很多,可以设计一个进度提醒功能-----WebSocket推送导出进度。

(1) 添加依赖
复制代码
<!-- pom.xml -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
(2) WebSocket配置类
java 复制代码
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(exportProgressHandler(), "/export/progress")
                .setAllowedOrigins("*");
    }

    @Bean
    public WebSocketHandler exportProgressHandler() {
        return new ExportProgressHandler();
    }
}
(3) WebSocket处理器(核心逻辑)
java 复制代码
public class ExportProgressHandler extends TextWebSocketHandler {

    // 保存所有活跃连接(Key: ws_id, Value: Session)
    private static final ConcurrentHashMap<String, WebSocketSession> sessions = new ConcurrentHashMap<>();

    @Override
    public void afterConnectionEstablished(WebSocketSession session) {
        String wsId = session.getHandshakeHeaders().getFirst("ws_id");
        sessions.put(wsId, session); // 建立连接时注册
    }

    // 推送进度给前端
    public static void sendProgress(String wsId, int progress) {
        WebSocketSession session = sessions.get(wsId);
        if (session != null && session.isOpen()) {
            session.sendMessage(new TextMessage("{\"progress\": " + progress + "}"));
        }
    }
}
相关推荐
zfoo-framework5 分钟前
帧同步和状态同步
java
charlotte102410247 分钟前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
亓才孓12 分钟前
[JDBC]PreparedStatement替代Statement
java·数据库
大橙子额24 分钟前
【解决报错】Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
前端·javascript·vue.js
_F_y34 分钟前
C++重点知识总结
java·jvm·c++
打工的小王36 分钟前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
毕设源码-赖学姐37 分钟前
【开题答辩全过程】以 高校体育场馆管理系统为例,包含答辩的问题和答案
java·spring boot
我真会写代码39 分钟前
SSM(指南一)---Maven项目管理从入门到精通|高质量实操指南
java·spring·tomcat·maven·ssm
vx_Biye_Design39 分钟前
【关注可免费领取源码】房屋出租系统的设计与实现--毕设附源码40805
java·spring boot·spring·spring cloud·servlet·eclipse·课程设计
DN金猿1 小时前
接口路径正确,请求接口却提示404
java·tomcat