【问题标题】:What is the major difference between SimpMessageHeaderAccessor vs StompHeaderAccessor Spring + javaSimpMessageHeaderAccessor vs StompHeaderAccessor Spring + java之间的主要区别是什么
【发布时间】:2017-09-10 08:41:32
【问题描述】:

SimpMessageHeaderAccessor 与 StompHeaderAccessor Web Socket Spring 的主要区别是什么?

知道的请详细解释一下?

【问题讨论】:

    标签: java spring stomp


    【解决方案1】:

    这有一个简单的答案:SimpMessageHeaderAccessorStompHeaderAccessor 的父级。

    也就是说,StompHeaderAccessor 专门用于 STOMP 标头,而 SimpMessageHeaderAccessor 用于所有消息传递协议标头,包括 STOMP。


    STOMP 是一种更简单的消息传递协议类型 - 它是基于文本的,有点类似于 HTTP 的工作方式,并允许使用多种语言和平台进行通信。但它不能用于排队和主题。

    进一步阅读:

    1. http://jmesnil.net/stomp-websocket/doc/
    2. https://blogs.vmware.com/vfabric/2013/02/choosing-your-messaging-protocol-amqp-mqtt-or-stomp.html

    【讨论】:

      【解决方案2】:

      了解STOMP 协议、其设计和格式对于更好地了解API 和classes 相关非常重要。

      STOMP 的可互操作有线格式允许客户端与多个消息代理进行通信。由于其语言不可知,以不同语言开发的客户端和代理可以相互发送和接收消息。

      STOMP 兼容的消息代理为 here

      STOMP 是基于文本的,不使用二进制协议。它支持一系列核心企业消息传递功能,例如身份验证、P2P 和发布和订阅等消息传递模型、消息确认、事务、消息头和属性等,

      因此,当您使用 Spring Messaging 框架构建客户端和服务器端消息传递平台和应用程序时,包 org.springframework.messaging.simp 具有对简单消息协议的通用支持,STOMP 就是其中之一。

      作为StompHeaderAccessor 的基类,可以将SimpMessageHeaderAccessor 用于通用消息头属性,并将StompHeaderAccessor 用于STOMP 特定属性,例如ContentLengthcreateForHeartbeat()isHeartbeat() 等,以及STOMP 消息传递API具体方法如updateStompCommandAsClientMessage()updateStompCommandAsServerMessage()wrap(Message<?> message)

      可以在here 找到使用 StompHeaderAccessor 的好例子。 这个blog 提供了一个同时使用 SimpMessageHeaderAccessor 和 StompHeaderAccessor 的好例子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-22
        • 2015-08-06
        • 2011-03-06
        相关资源
        最近更新 更多