【问题标题】:STOMP over websockets vs plain STOMP. Which one is better?STOMP over websockets 与普通 STOMP。哪一个更好?
【发布时间】:2016-07-01 08:42:03
【问题描述】:

从 spring 4 开始,我们支持 STOMP (sub)protocol over WebSocket。我确实了解 WebSocket 与 HTTP 相比的好处以及使用 STOMP 而不是 WebSocket 的好处和好处,但我想了解以下内容:

  1. 直接使用 stomp 协议与 MB 通信是否有任何性能优势(如 RabbitMQ 或 Kafka - 可能在未来)

  2. 除了处理客户端连接到服务器/MB 所需的握手之外,使用STOMP 作为 Web 套接字上的子协议有什么好处吗

【问题讨论】:

    标签: spring websocket rabbitmq stomp spring-websocket


    【解决方案1】:

    这些是正交问题。 Websocket 是一种传输方式;事实上,当使用sock.js 时,您可以使用许多传输作为后备,并且仍然使用 STOMP。

    STOMP 描述了客户端和服务器之间交换的消息格式。

    这就像要求比较 TCP 和 HTTP。

    1. 您不能“只使用”STOMP 与服务器或消息代理进行通信。您必须使用传输来发送这些 STOMP 消息。
    2. STOMP 不处理 websocket 握手,事实上,它根本不知道它。举个例子,您可以在 HTTP 之上透明地使用 STOMP,并且从 STOMP 的角度来看没有任何区别。

    【讨论】:

    • 关于您的观点 1)根据链接 rabbitmq.com/protocols.html 似乎我们可以使用 web-stomp(通过 http),但提到的默认 STOMP/MQTT/AMQP 不使用 HTTP。我不确定在没有底层 HTTP 的情况下握手是如何发生的,但必须进行调查
    • 但是在“26.4.14 STOMP Client”的 spring 文档中写到有一个 STOMP over WebSocket 和一个 STOMP over TCP 客户端。所以在我的理解中,WebSocket 已经建立在 TCP 之上,所以基于 TCP 的 STOMP 将 WebSocket 层留在了两者之间?那么不将 WebSocket 层排除在外的好处在哪里呢?编辑:我想从服务器到服务器进行通信(所以不涉及浏览器)
    猜你喜欢
    • 2014-03-17
    • 2017-01-06
    • 1970-01-01
    • 2016-06-28
    • 2012-10-06
    • 2016-07-26
    • 1970-01-01
    • 2017-11-13
    • 2017-02-16
    相关资源
    最近更新 更多