一篇简单的STOMP教程QAQ

张开发
2026/5/5 9:53:45 15 分钟阅读

分享文章

一篇简单的STOMP教程QAQ
一、STOMP是什么STOMP 简单文本定向消息协议Simple Text Oriented Messaging ProtocolStomp是一套通用的消息“聊天规则”用来让客户端和消息服务器Broker之间收发消息解决“谁发消息、发给谁、怎么发”的问题。核心特点:文本格式消息内容是纯文本跟HTTP请求很像可读性强调试方便轻量简单命令少、格式固定不用写复杂的自定义解析跨平台兼容Java、JS、Python等语言都能适配WebSocket、TCP都能当底层传输主打发布/订阅最常用的场景就是“订阅频道→发消息→所有人接收”适合聊天室、实时通知、大屏推送简单类比STOMP就像快递行业的统一标准不管是哪家快递公司消息服务器、哪种交通工具WebSocket/TCP都能按这套规则寄收包裹消息不用各自搞一套。二、核心用法主要就4个STOMP的操作全靠命令头部消息体日常开发只用掌握4个核心命令覆盖绝大多数场景。1. 前置准备先搭好基础环境服务端启用STOMP的消息代理客户端引入对应STOMP客户端库前端用stompjs底层传输常用WebSocket前端实时场景首选2. 核心命令详解极简版 CONNECT连接服务器作用客户端跟消息服务器建立连接相当于“开门进门”关键参数服务器地址、鉴权信息账号密码可选// 前端stompjs示例 const client Stomp.client(ws://localhost:8080/stomp); // 创建stomp实例 client.connect({}, () { console.log(STOMP连接成功); }); SUBSCRIBE订阅频道作用订阅某个消息频道服务器有消息就推给你相当于“订阅公众号”关键参数订阅地址Destination比如/topic/chat、接收消息的回调函数// 订阅聊天室频道 client.subscribe(/topic/chat-room, (message) { // 收到消息后处理 console.log(收到消息, message.body); }); SEND发送消息作用往指定频道发消息相当于“发朋友圈订阅的人都能看”关键参数发送地址和订阅地址对应、消息头、消息内容// 往聊天室发消息 client.send( /topic/chat-room, {}, JSON.stringify({ user: 张三, content: 大家好 }) );❌ DISCONNECT断开连接作用关闭连接释放资源页面关闭时必用// 断开连接 client.disconnect(() { console.log(STOMP连接已断开); });三、简单示例前端浏览器完整代码!-- 引入stompjs和sockjs兼容低版本浏览器 -- script srchttps://cdn.jsdelivr.net/npm/stompjs2.3.3/lib/stomp.min.js/script script // 1. 创建客户端 const client Stomp.client(ws://localhost:8080/stomp-endpoint); // 2. 连接成功后订阅频道 client.connect({}, () { console.log(连接成功); // 订阅消息 client.subscribe(/topic/notice, (msg) { alert(收到通知 msg.body); }); }); // 3. 发送消息函数 function sendMsg() { client.send(/topic/notice, {}, 这是一条实时通知); } /script button onclicksendMsg()发送通知/button四、注意事项STOMP ≠ WebSocketWebSocket是传输通道STOMP是通道里的消息规则STOMP可以跑在TCP、WebSocket上Destination地址规范常用/topic/广播所有人接收、/queue/点对点单人接收不用深究帧格式日常开发用客户端库封装好的方法就行不用手动拼文本帧异常处理连接失败、断网重连要加回调提升稳定性总结STOMP就是一套简单通用的消息收发协议核心就是连接→订阅→发送→断开专门解决实时消息推送、聊天室这类场景。不用纠结底层原理记住4个命令照着示例改改地址和参数就能快速实现功能。核心内容建连接、订频道、发消息实时通信。

更多文章