二者都是 TCP/IP 协议簇下的子协议。 STOMP 对标的是 AMQP。 WebSocket 跟 HTTP 是平级的协议,虽然前者依赖后者建立链接,但之后就跟 HTTP 没啥关系了。依赖关系是因为是因为它是为了浏览器而设计出来的,出于兼容的需要,二者有交集但不是父子关系。 而 STOMP/AMQP 就跟 WebSocket/HTTP 完全没关系了(硬说有也不是没有,毕竟前者的很多设计思路参考了后者,但在具体实现上则没有必然的依赖关系)。 在实际应用中,STMOP 可以建立在 WebSocket 基础上进行数据传输,但也完全可以使用其他应用层协议上。虽然理论上如此,但用 WebSocket 几乎已成为了事实标准,毕竟 STMOP 需要互操作,而全双工的应用层协议并不多,也只能是 WebSocket 了。当然你也完全可以自己在 TCP/IP 上自己搞一套应用层协议,然后把 STMOP 接进去,不过你看看有没有哪个支持 STOMP 的项目(例如 RabbitMQ)会跟进你?
二者都是 TCP/IP 协议簇下的子协议。
STOMP 对标的是 AMQP。
WebSocket 跟 HTTP 是平级的协议,虽然前者依赖后者建立链接,但之后就跟 HTTP 没啥关系了。依赖关系是因为是因为它是为了浏览器而设计出来的,出于兼容的需要,二者有交集但不是父子关系。
而 STOMP/AMQP 就跟 WebSocket/HTTP 完全没关系了(硬说有也不是没有,毕竟前者的很多设计思路参考了后者,但在具体实现上则没有必然的依赖关系)。
在实际应用中,STMOP 可以建立在 WebSocket 基础上进行数据传输,但也完全可以使用其他应用层协议上。虽然理论上如此,但用 WebSocket 几乎已成为了事实标准,毕竟 STMOP 需要互操作,而全双工的应用层协议并不多,也只能是 WebSocket 了。当然你也完全可以自己在 TCP/IP 上自己搞一套应用层协议,然后把 STMOP 接进去,不过你看看有没有哪个支持 STOMP 的项目(例如 RabbitMQ)会跟进你?