WebSockets
STOMP
STOMP即Simple (or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议为许多公司都提供了基于STOMP的服务器与客户端。
STOMP定义了客户端和服务器之间以Frame进行同行,Frame的格式为:
COMMAND例如:
header1:value1
header2:value2
Body^@

COMMAND分为CONNECT、SEND、SUBSCRIBE、UNSUBSCRIBE、BEGIN、COMMIT、ABORT、ACK、NACK、DISCONNECT这几种。
COMMAND之后下一行紧跟着的是头部的键值对,之后加入一条空行,空行之后为body,即传递的消息实体。
WebSockets与STOMP的区别:
websockets基于tcp,是一种数据传输协议,而stomp是一种文本协议,有点类似tcp与http协议的关系,tcp可以传输二进制文件,tcp不会涉及传输的内容是什么,而是按照自己的协议打包传输数据,有点类似于现在的运输物流,而http是利用tcp这个传输工具创立的一套超文本传输协议,他对请求应答设置了文本规则,比较get post方法,http status状态码设定,类似于快递邮寄。
所以websockets与stomp的区别也可以是物流运输与快递的区别,快递是建立在物流运输的基础上,当然stomp协议可以建立在非websocket上,比如tcp、udp等。
网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?