知识卡片

STOMP协议存在的意义

专业/工作 · 625.a

内容

原生[[WebSocket与HTTP的协议关系]]只提供”打开连接、收发消息、关闭连接”这几个底层事件,消息本身没有格式、路由、订阅这些语义,开发者要自己设计一套约定才能把消息分发到正确的处理逻辑。STOMP在WebSocket之上定义了一层基于帧的应用层协议——每帧包含命令(SEND/SUBSCRIBE/UNSUBSCRIBE等)、可选标头和消息体,天然具备”发送到某个目的地”“订阅某个目的地”这样的语义,相当于给WebSocket补上了消息队列式的路由能力。发散:这是”底层协议留白、上层子协议补齐语义”的常见分层模式——WebSocket解决的是”连接怎么建立、数据怎么双向流动”,STOMP解决的是”消息该发给谁、谁该收到什么”,两层各自解决不同抽象层级的问题。

参考来源

《Spring Boot应用开发实战》第8章《实战1:基于STOMP协议的聊天服务》