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

Springboot项目中使用WebSocket与前端通信时,AOP的before注解未起作用

原因:
在 Spring AOP 的 @Before 切面阶段,WebSocket 连接可能还没有完全建立,尤其是在请求处理流程的早期阶段。因此,前端无法立即接收到消息。而 @AfterReturning 会在控制器方法执行完毕后触发,此时 WebSocket 连接一般已完全准备好,消息更容易被前端接收。
解决方法:
尝试延迟发送消息,给 WebSocket 连接足够的时间来建立。可以在 @Before 切面中加入一点延迟来测试。

@Before("execution(* com.example.realtimeoutputlog.demo.TaskController.startTask(..)) && args(taskId, taskName)")
public void beforeTaskStart(JoinPoint joinPoint, String taskId, String taskName) throws InterruptedException {
    Thread.sleep(100); // 添加延迟,单位为毫秒
    messagingTemplate.convertAndSend("/topic/logs/" + taskId, "任务启动: " + taskName);
}


http://www.kler.cn/news/368477.html

相关文章:

  • 01-信息安全真题
  • Vue.js 组件开发教程:从基础到进阶
  • 13 Docker容器单机网络架构全攻略:使用自定义桥接的实践与探索
  • 【程序员的逆袭】:在失业的阴影下寻找光明
  • AndroidStudio Koala更改jdk版本 2024-1-2
  • 管家婆财贸ERP BB040.销售单插行快捷键+BB041.超期应收款审核条件控制
  • 探索网页组件化:原生JavaScript动态加载HTML与iframe的使用与比较
  • 基于IMX6ULL开发板LCD点阵显示字符学习
  • FreeSWITCH JSON API
  • 【服务器】服务器部署后端,开放后端端口
  • stm32 开发环境的 搭建
  • Oracle 运维相关概念及操作
  • 逻辑推理学习笔记
  • [mysql]单行函数的练习
  • css知识点梳理2
  • 【论文阅读】PGAN
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第六十七章 Trusted Firmware-A 移植
  • 鸿蒙中常见的性能优化
  • 2024.10.24华为(留学生)笔试题解
  • 道路车辆功能安全 ISO 26262标准(9-4)—面向汽车安全完整性等级 (ASIL) 和安全的分析
  • ELK日志收集
  • TortoiseSVN 添加日志模板
  • SQL中实现去重的多种方法
  • VMware 版本不兼容问题及解决方案
  • Spring Boot论坛网站:多用户环境的构建
  • spring 学习路线梳理(一)