2016-12-06 405 views

回答

12

这个问题类似于询问TCP和HTTP之间的区别。我仍然会试着解决你的问题,如果你开始的话,它会很自然地混淆这两个术语。

简答

STOMP推导上的WebSockets的顶部。 STOMP只是提到了使用WebSockets在客户端和服务器之间交换消息帧的一些具体方法。


长的答案

的WebSockets

这是一个规范允许客户端和服务器之间同步的双向通信。虽然与TCP套接字类似,但是它是一种协议,它作为升级的HTTP连接运行,在双方之间交换可变长度的帧,而不是流。

STOMP

它定义了客户机和服务器与消息语义进行通信的协议。它没有定义任何实现细节,而是为消息集成提供了一个易于实现的有线协议。它在WebSockets协议之上提供了更高的语义,并定义了一些映射到WebSockets帧的帧类型。有些类型的...

  • 连接
  • 订阅
  • 退订
  • 发送(向服务器发送消息)
  • 消息(消息从服务器发送)开始,提交ROLLBACK (交易管理)
1

WebSocket API使Web应用程序能够处理双向通信,而S TOMP是一个简单的面向文本的消息传递协议。

当Web应用程序需要支持与Web服务器的双向通信时,STOMP协议通常用于Web套接字内部。

良好的教程STOMP Over WebSocket由Jeff Mesnill(2012)

STOMP还可以不经过WebSocket的使用,例如通过Telnet连接或消息中介服务。

原始WebSockets可以使用没有STOMP - 例如。 Spring Boot + WebSocket example without STOMP and SockJs