【问题标题】:Spring 4 Web sockets - Do i must have a stomp broker?Spring 4 Web 套接字 - 我必须有一个 stomp 代理吗?
【发布时间】:2014-04-24 16:58:18
【问题描述】:

我一直在使用以下链接来玩新的 spring 4 websockets:

http://spring.io/guides/gs/messaging-stomp-websocket/

我想知道是否必须使用 stomp 代理才能使用 spring 框架?有没有经纪人少的方法来使用它?

谢谢

【问题讨论】:

    标签: java spring websocket stomp spring-websocket


    【解决方案1】:

    本指南使用 Spring Framework 中提供的simple broker implementation。它只是一段 Java 代码,在那个设置中没有真正的代理。所以是的,有一种无需代理的方式来使用它,而且您已经在这样做了。

    虽然此实现缺少许多功能,但您可能希望在生产中使用真正的代理(如 RabbitMQ)。

    编辑:

    您不必必须使用 STOMP 和消息代理,实际上您可以直接使用 Websocket API。如this presentation中所述:

    直接使用 WebSocket API 有点像编写自定义 Servlet 应用程序,但 WebSocket 协议的级别低于 HTTP。

    根据您的应用目标,您可能会选择消息驱动的应用程序;靠自己解决不是一件容易的事...

    【讨论】:

    • 是的,我知道,但是是否可以在没有任何 stomp 代理的情况下使用带有 spring 的 websocket?或者当您选择使用带有 websockets 的 spring 时,Stomp 是强制性的?
    • @Urbanleg 不,它不是强制性的,如果你想使用 stomp,它是可选的。 Stomp 是一个更高级别的协议,因此您不需要为 websocket 处理低级别的会话处理。
    • 但是如果我想使用 stomp 但不提供消息代理怎么办?我想自己提供接口来处理 stomp 事件,而不是依赖消息代理
    【解决方案2】:

    我建议不要使用 STOMP,因为它需要在您的代码中嵌入一个框架。框架来来去去,需要更新。

    您可以使用 Spring(引导)WebSocket 通道来传递 JSON,而无需使用 STOMP。如果您正在使用前端应用程序(例如 JavaScript),JSON 已经是您的“模型”数据,可以轻松地双向传递/解析。

    WebSocket API 包含的内容足以让您实现 onConnect()、onMessage()、onError()。其实我更喜欢这个,因为我可以控制。例如在 onConnect 中,您可以验证令牌并自定义安全性。

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 2021-02-14
      • 2017-01-14
      • 1970-01-01
      • 2010-10-29
      • 2017-12-09
      • 1970-01-01
      • 2016-06-17
      • 2010-11-17
      相关资源
      最近更新 更多