【发布时间】:2017-09-10 08:41:32
【问题描述】:
SimpMessageHeaderAccessor 与 StompHeaderAccessor Web Socket Spring 的主要区别是什么?
知道的请详细解释一下?
【问题讨论】:
SimpMessageHeaderAccessor 与 StompHeaderAccessor Web Socket Spring 的主要区别是什么?
知道的请详细解释一下?
【问题讨论】:
这有一个简单的答案:SimpMessageHeaderAccessor 是 StompHeaderAccessor 的父级。
也就是说,StompHeaderAccessor 专门用于 STOMP 标头,而 SimpMessageHeaderAccessor 用于所有消息传递协议标头,包括 STOMP。
STOMP 是一种更简单的消息传递协议类型 - 它是基于文本的,有点类似于 HTTP 的工作方式,并允许使用多种语言和平台进行通信。但它不能用于排队和主题。
进一步阅读:
【讨论】:
了解STOMP 协议、其设计和格式对于更好地了解API 和classes 相关非常重要。
STOMP 的可互操作有线格式允许客户端与多个消息代理进行通信。由于其语言不可知,以不同语言开发的客户端和代理可以相互发送和接收消息。
STOMP 兼容的消息代理为 here。
STOMP 是基于文本的,不使用二进制协议。它支持一系列核心企业消息传递功能,例如身份验证、P2P 和发布和订阅等消息传递模型、消息确认、事务、消息头和属性等,
因此,当您使用 Spring Messaging 框架构建客户端和服务器端消息传递平台和应用程序时,包 org.springframework.messaging.simp 具有对简单消息协议的通用支持,STOMP 就是其中之一。
作为StompHeaderAccessor 的基类,可以将SimpMessageHeaderAccessor 用于通用消息头属性,并将StompHeaderAccessor 用于STOMP 特定属性,例如ContentLength、createForHeartbeat()、isHeartbeat() 等,以及STOMP 消息传递API具体方法如updateStompCommandAsClientMessage()、updateStompCommandAsServerMessage()、wrap(Message<?> message)。
可以在here 找到使用 StompHeaderAccessor 的好例子。 这个blog 提供了一个同时使用 SimpMessageHeaderAccessor 和 StompHeaderAccessor 的好例子。
【讨论】: