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

websocket 随手记

拦截器执行顺序:
在 Spring WebSocket + STOMP 的流程中,会先执行 HTTP 握手拦截器(HandshakeInterceptor),在客户端与服务端建立 WebSocket 连接时触发;待握手成功、STOMP 会话建立之后,后续的 STOMP 消息(如 SEND、SUBSCRIBE 等)才会经过 频道消息拦截器(ChannelInterceptor)。

在 HandshakeInterceptor 中设置自定义值供后续使用:
可以在 HandshakeInterceptor 的 beforeHandshake 方法 中,通过 Map attributes 参数(即握手请求的会话属性)存入自定义数据(例如用户 ID、认证信息等)。这些数据会被 Spring 保存到当前 WebSocket 会话的上下文中。

通过 SimpMessageHeaderAccessor 获取握手阶段设置的值:
在后续的 消息处理器(如 @MessageMapping 标注的方法) 或 ChannelInterceptor 中,可以通过注入或获取 SimpMessageHeaderAccessor(或其子类 StompHeaderAccessor)对象,调用其 getSessionAttributes() 方法,从而拿到在 HandshakeInterceptor 中存入的 attributes 数据。

@MessageMapping("/chat.send") 注解的作用:
该注解用于声明一个 STOMP 消息处理方法。前端通过 STOMP 客户端向 /app/chat.send 发送消息(注意:Spring 默认将 /app 作为应用前缀),该消息就会被此方法处理。

方法参数支持 SimpMessageHeaderAccessor:
在使用 @MessageMapping 注解的方法中,可以直接将 SimpMessageHeaderAccessor 作为方法参数,Spring 会自动注入当前消息的头信息访问器,便于读取会话属性、用户信息、STOMP 头等。

SimpMessagingTemplate 用于服务端主动推送消息:
Spring 提供的 SimpMessagingTemplate 是一个模板类,用于从服务端向 WebSocket 客户端发送消息。核心方法是 convertAndSend(目的地, 消息对象),例如:

messagingTemplate.convertAndSend("/topic/public", msg);

前端必须提前订阅了 /topic/public 才能接收到该广播消息。

http://www.jsqmd.com/news/472681/

相关文章:

  • asp毕业设计—— 基于asp+access的网络招聘管理系统设计与实现(毕业论文+程序源码)——网络招聘管理系统
  • 探索AI视觉新高度:MMDetection深度学习框架详解
  • asp毕业设计—— 基于asp+access的网上动态同学录系统设计与实现(毕业论文+程序源码)——同学录系统
  • 第6篇:websocket 频道消息拦截器ChannelInterceptor 介绍和使用
  • 006、体系结构之TiKV读取和Coprocessor
  • python + word
  • C#毕业设计——基于C#+asp.net+SVG的基于SVG的自动站雨量分析系统设计与实现(毕业论文+程序源码)——雨量分析系统
  • 第3篇 附录:Spring Boot + WebSocket + 消息队列STOMP协议 示例-- 只有 前台页面
  • 探索Mask R-CNN:深度学习中的图像分割神器
  • Hive中rlike,like区别与使用详解
  • MAPPO动作类型改进(二)——MAPPO+连续环境
  • 2026年南京名酒回收市场选择参考:茅台、老酒、虫草及礼品回收服务指南 - 海棠依旧大
  • 多模态跟踪怎么搞?清华西电TPAMI 2025新方法深度解析,从小白到大神,吃透这一篇就够了!
  • 【Mutilism用传输门搭建D触发器/与非门/或非门】2022-3-11
  • C#毕业设计——基于C#+asp.net+SQL Server的课程指导平台设计与实现(毕业论文+程序源码)——课程指导平台
  • 2026年3月南京名酒回收机构选择指南:茅台回收、老酒回收、洋酒回收、红酒回收、虫草回收机构 - 海棠依旧大
  • 笔试题-_-
  • Simpleperf 性能工具介绍app_profiler.py -i perf.data
  • C#毕业设计——基于C#+asp.net+SQL server的通用作业批改系统设计与实现(毕业论文+程序源码)——作业批改系统
  • 2026年江苏名酒回收机构推荐榜:名酒 / 老酒 / 虫草回收、上门服务、商家选择指南,盛鑫回收用专业鉴定守护靠谱交易 - 海棠依旧大
  • anaconda常用指令
  • “水莲花数”
  • 2026年成都/自贡/内江/泸州/宜宾/乐山/四川/云南云梯车、高空车、吊车、挖掘机、压路机、铲车租赁市场盘点:如何甄选可靠服务伙伴? - 2026年企业推荐榜
  • Ubuntu 22.04 搭建onlyoffice私服
  • 欧洲智慧零售及无人店铺展代理:好评度高选择策略解析
  • Logstash 项目教程:从零开始构建数据管道
  • ubantu环境初始化
  • 零基础Java第二期:数据类型与变量
  • 2026年3月江苏名酒回收公司选择指南:茅台回收、名酒老酒回收、洋酒红酒回收、虫草回收机构 - 海棠依旧大
  • 英国伯明翰电子烟展门票办理:靠谱合作公司选择的5大核心策略